SQL分组多列统计(GROUP BY后按条件分列统计)
最近遇到一个问题,需要对一张表做统计,这个统计有什么特别之处值得我记录了下来呢?大家知道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后按条件分列统计)相关推荐
- quvhu重复行MySQL,利用mysql中的SQL_CALC_FOUND_ROWS 来实现group by后的记录数统计
最近正在做一个显示消息的列表页,列表页中需要根据一个字段来分组显示.并且需要一个分页的效果. 大家也知道group by 后的数据是每一组一行记录,统计分组后的总的记录数又不能用count,所以SQL ...
- es 聚合分页(group by后分页)
es 实现sql的 group by后如何分页? 先放json解释,再放纯净版方便copy {"query": {...... //搜索条件},"aggs": ...
- mysql 按月统计 包括空月_mysql 按月统计但是有几个月没有数据,需要变成0
创建现在倒过去的12个月的视图 CREATE VIEW `past_12_month_view` AS SELECT DATE_FORMAT(CURDATE(), '%Y-%m') AS `month ...
- sql分组查询group by结合count,sum统计语句的实现(附带sql详细分析步骤)
日常写代码经常会遇到数据统计的业务场景,分组查询 group by 结合 count 和 sum 的复杂语句写起来容易令人头大,在这里分享两个比较复杂的统计场景,提供详细分析思路和最终sql语句,希望 ...
- SQL——分组统计查询
统计函数 COUNT(*|DISTINCT|列) --求出全部的记录数,即全部行 SUM(列) --求出总和,操作的列是数字 AVG(列) --求平均值 MAX(列) --求最大值 MIN(列) -- ...
- 深入理解sql分组查询(group by)
理解group by语义 个人认为sql中的group by和join是两大难点,因为它们转换了原来的表结构,group把表按某些字段统计缩小,join则使用笛卡尔积将多个表连接展开(关于表的连接,请 ...
- SQL分组后将不存在的组记为0
说明 最近遇到这么一个需求:统计区间在0-2000,2000-3000,3000-4000,4000-5000,5000+工资的人数. 快速开始 数据如下: 开始看到这个问题,想都没想就开始写了下面的 ...
- SQL 分组排序后取值
SQL 分组排序后取值 场景前要: 从前有三个班级,每个班级的学生成绩各异,有一天睿智的校长希望知道这一年中,每个班级近一年里所有的学生成绩信息,和查询每个班级近一年里所有第一名的学生成绩信息,故事由 ...
- sql 分组后按时间降序排列再取出每组的第一条记录
sql 分组后按时间降序排列再取出每组的第一条记录 原文:sql 分组后按时间降序排列再取出每组的第一条记录 竞价记录表: Aid 为竞拍车辆ID,uid为参与竞价人员ID,BidTime为参与竞拍时 ...
最新文章
- ANGULAR自带指令有哪些?
- 今天看到一个很个性的blog
- 后端 消息 转发_【后端开发】Servlet怎么转发
- 往Cloud Foundry上部署应用背后的技术实现
- 二元偏导数存在的条件_多元函数 可导、可微、连续、一阶偏导数连续 之间关系的总结...
- 第三方软件源_手机上的天气软件哪个更准确?
- 【学习笔记】网络层:应用模型、DNS系统、文件传输协议FTP
- 案例|自建or现成工具?小型创业团队敏捷研发探索
- 暑假周进度总结报告7
- java 正则替换cdata_XML中配置正则表达式的写法
- 直方图匹配法(规则化)
- salt 安装kubernetes集群3节点
- 数据分析——如何构建数据指标体系
- jmeter 取样器
- 什么是即时通讯?即时通讯的发展
- 项目管理之项目干系人
- python彩虹蛇_一亿年前巨蟒沃那比蛇一口能吞噬恐龙,沃那比蛇灭绝原因
- AD出现 “Net Tie failed verification”如何解决?
- 如何在linux终端创建txt文件,在Linux中,如何使用 命令行 快速创建一个文本文件...
- android手机 恢复微信图片,微信图片过期了怎么恢复?记住这个操作,找回更清晰!...
热门文章
- python每行输出8个式子_求大神用python写出算术题的式子和结果。
- 关于python语言的浮点数类型_Python 浮点数数据类型详解(float)[学习 Python 必备基础知识][看此一篇就够了]...
- python十进制转八进制_怎样用python进行二进制,八进制,十进制转换
- 本是同根生,相煎何太急?
- npm 卸载_完全免费!GitHub发布软件包管理服务:NPM瑟瑟发抖
- js和html邮箱注册的正则,js邮箱正则表达式
- python学习笔记项目_python学习笔记——肆
- fileoutputstream路径 android,Android编程中FileOutputStream与openFileOutput()的区别分析
- npc寻路问题 c++_《原神》游戏中最懒的NPC出现了,她要玩家找一朵甜甜花
- 导致大量kworker的原因_头上白发越长越多,原因有哪些?