最近遇到一个问题,需要对一张表做统计,这个统计有什么特别之处值得我记录了下来呢?大家知道SQL中聚合函数GROUP BY的结果一般为一列,即多个值通过聚合函数运算统计到一起,但是如何将不同条件的值统计到不同列中呢,即按条件统计到多个列中。举个栗子:

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

这时候我们除了用到GROUP BY之外还需要CASE WHEN,SQL如下:

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是写死的,有没有办法能更灵活一点呢?

转载于:https://www.cnblogs.com/eshizhan/p/4394927.html

SQL分组多列统计(GROUP BY后按条件分列统计)相关推荐

  1. quvhu重复行MySQL,利用mysql中的SQL_CALC_FOUND_ROWS 来实现group by后的记录数统计

    最近正在做一个显示消息的列表页,列表页中需要根据一个字段来分组显示.并且需要一个分页的效果. 大家也知道group by 后的数据是每一组一行记录,统计分组后的总的记录数又不能用count,所以SQL ...

  2. es 聚合分页(group by后分页)

    es 实现sql的 group by后如何分页? 先放json解释,再放纯净版方便copy {"query": {...... //搜索条件},"aggs": ...

  3. mysql 按月统计 包括空月_mysql 按月统计但是有几个月没有数据,需要变成0

    创建现在倒过去的12个月的视图 CREATE VIEW `past_12_month_view` AS SELECT DATE_FORMAT(CURDATE(), '%Y-%m') AS `month ...

  4. sql分组查询group by结合count,sum统计语句的实现(附带sql详细分析步骤)

    日常写代码经常会遇到数据统计的业务场景,分组查询 group by 结合 count 和 sum 的复杂语句写起来容易令人头大,在这里分享两个比较复杂的统计场景,提供详细分析思路和最终sql语句,希望 ...

  5. SQL——分组统计查询

    统计函数 COUNT(*|DISTINCT|列) --求出全部的记录数,即全部行 SUM(列) --求出总和,操作的列是数字 AVG(列) --求平均值 MAX(列) --求最大值 MIN(列) -- ...

  6. 深入理解sql分组查询(group by)

    理解group by语义 个人认为sql中的group by和join是两大难点,因为它们转换了原来的表结构,group把表按某些字段统计缩小,join则使用笛卡尔积将多个表连接展开(关于表的连接,请 ...

  7. SQL分组后将不存在的组记为0

    说明 最近遇到这么一个需求:统计区间在0-2000,2000-3000,3000-4000,4000-5000,5000+工资的人数. 快速开始 数据如下: 开始看到这个问题,想都没想就开始写了下面的 ...

  8. SQL 分组排序后取值

    SQL 分组排序后取值 场景前要: 从前有三个班级,每个班级的学生成绩各异,有一天睿智的校长希望知道这一年中,每个班级近一年里所有的学生成绩信息,和查询每个班级近一年里所有第一名的学生成绩信息,故事由 ...

  9. sql 分组后按时间降序排列再取出每组的第一条记录

    sql 分组后按时间降序排列再取出每组的第一条记录 原文:sql 分组后按时间降序排列再取出每组的第一条记录 竞价记录表: Aid 为竞拍车辆ID,uid为参与竞价人员ID,BidTime为参与竞拍时 ...

最新文章

  1. ANGULAR自带指令有哪些?
  2. 今天看到一个很个性的blog
  3. 后端 消息 转发_【后端开发】Servlet怎么转发
  4. 往Cloud Foundry上部署应用背后的技术实现
  5. 二元偏导数存在的条件_多元函数 可导、可微、连续、一阶偏导数连续 之间关系的总结...
  6. 第三方软件源_手机上的天气软件哪个更准确?
  7. 【学习笔记】网络层:应用模型、DNS系统、文件传输协议FTP
  8. 案例|自建or现成工具?小型创业团队敏捷研发探索
  9. 暑假周进度总结报告7
  10. java 正则替换cdata_XML中配置正则表达式的写法
  11. 直方图匹配法(规则化)
  12. salt 安装kubernetes集群3节点
  13. 数据分析——如何构建数据指标体系
  14. jmeter 取样器
  15. 什么是即时通讯?即时通讯的发展
  16. 项目管理之项目干系人
  17. python彩虹蛇_一亿年前巨蟒沃那比蛇一口能吞噬恐龙,沃那比蛇灭绝原因
  18. AD出现 “Net Tie failed verification”如何解决?
  19. 如何在linux终端创建txt文件,在Linux中,如何使用 命令行 快速创建一个文本文件...
  20. android手机 恢复微信图片,微信图片过期了怎么恢复?记住这个操作,找回更清晰!...

热门文章

  1. python每行输出8个式子_求大神用python写出算术题的式子和结果。
  2. 关于python语言的浮点数类型_Python 浮点数数据类型详解(float)[学习 Python 必备基础知识][看此一篇就够了]...
  3. python十进制转八进制_怎样用python进行二进制,八进制,十进制转换
  4. 本是同根生,相煎何太急?
  5. npm 卸载_完全免费!GitHub发布软件包管理服务:NPM瑟瑟发抖
  6. js和html邮箱注册的正则,js邮箱正则表达式
  7. python学习笔记项目_python学习笔记——肆
  8. fileoutputstream路径 android,Android编程中FileOutputStream与openFileOutput()的区别分析
  9. npc寻路问题 c++_《原神》游戏中最懒的NPC出现了,她要玩家找一朵甜甜花
  10. 导致大量kworker的原因_头上白发越长越多,原因有哪些?