SQL分组多列统计(GROUP BY后按条件分列统计)
2015-04-05 22:31
447 查看
最近遇到一个问题,需要对一张表做统计,这个统计有什么特别之处值得我记录了下来呢?大家知道SQL中聚合函数GROUP BY的结果一般为一列,即多个值通过聚合函数运算统计到一起,但是如何将不同条件的值统计到不同列中呢,即按条件统计到多个列中。举个栗子:
转为:
这时候我们除了用到GROUP BY之外还需要CASE WHEN,SQL如下:
小小的知识点,记录下来并分享给有需要的人。
P.S. 这里TYPE是写死的,有没有办法能更灵活一点呢?
YEAR | TYPE | VALUE |
2015 | 1 | 100 |
2015 | 2 | 200 |
2016 | 1 | 150 |
2016 | 2 | 300 |
2016 | 3 | 100 |
YEAR | TYPE1 | TYPE2 | TYPE3 |
2015 | 100 | 200 | 0 |
2016 | 150 | 300 | 100 |
SELECT year, SUM(CASE WHEN type=1 THEN value ELSE 0 END) as type1, SUM(CASE WHEN type=2 THEN value ELSE 0 END) as type2, SUM(CASE WHEN type=3 THEN value ELSE 0 END) as type3, FROM table_test GROUP BY year
小小的知识点,记录下来并分享给有需要的人。
P.S. 这里TYPE是写死的,有没有办法能更灵活一点呢?
相关文章推荐
- SQL分组多列统计(GROUP BY后按条件分列统计)
- 【数据库】SQL分组多列统计(GROUP BY后按条件分列统计)
- SQL分组多列统计(GROUP BY后按条件分列统计) -转
- sql分组统计查询 count带条件
- sq更新语句条件子查询中有分组统计的sql,导致错误1093
- Excel 中使用SQL 语句查询数据(八)-----用Group by 进行分组统计
- group by分组统计SQL语句
- sql GROUP BY 分组统计
- sql分组按条件统计count case when then
- 两个条件分组统计sql
- sql的分组统计与group by 日期的处理
- SQL 统计分组 Group By和Compute By的整理
- SQL进行排序、分组、统计
- SQL进行排序、分组、统计
- SQL 中的单列数据到多列数据的转换,以及转换后的分组统计
- 关于SQL分组统计
- SQL 先Group by 分组后 left join 语句
- SQL进行排序、分组、统计的10个新技巧
- Excel 中统计某个项目出现的次数,以及模拟SQL的Group by效果
- SQL数据进行排序、分组、统计10技巧