SQL知多少?利用group by配合case when来对数据做区间汇总
2023-09-14 09:06:26 时间
如下是产品经理的一个提数需求。
要求计算出来不同收入区间里的人数、总金额。
怎么实现?
group by是少不了的。不过,总不能每个区间都去执行一次包含group by的select语句吧,那多耽误工夫啊。教你一招,拿走不谢!
group by配合case when,也许你不晓得有多爽!
简化一下场景,例如,下面表格左边是原始数据,右边是基于原始数据的统计结果。
原始数据 | →→→ | 统计结果 |
user amt |
→→→ |
amtRange userCount totalAmt |
下面sql,拿走不谢。
SELECT CASE WHEN amt>=10 AND amt<20 THEN '1X' WHEN amt>=20 AND amt<30 THEN '2X' ELSE 0 END AS 'amtRange' , COUNT(1) AS 'userCount', SUM(amt) AS 'totalAmt' FROM( SELECT 'ZhangSan' AS USER,10 AS amt UNION ALL SELECT 'Molly',15 UNION ALL SELECT 'Biden',21 UNION ALL SELECT 'Hack',16 ) a GROUP BY CASE WHEN amt>=10 AND amt<20 THEN '1X' WHEN amt>=20 AND amt<30 THEN '2X' ELSE 0 END
相关文章
- SQL Server 各版本发布时间、开发代号及下载地址
- SQL Server不区分大小写的问题
- Sql Server之旅——第六站 使用winHex利器加深理解数据页
- logstash5.5.0同步sql server数据
- SQL字符串拼接
- Oracle sql"NOT IN"语句优化,查询A表有、B表没有的数据
- sql盲注快速出数据之超级注入工具
- sql 语句系列(每个季度的开始日期和结束日期)[八百章之第二十二章]
- Python Django通过牵引文件查看建表sql语句的命令sqlmigrate
- 在SAP Commerce里用SQL查询产品主数据
- MySQL关于根据日期查询数据的sql语句
- VB.net:VB.net编程语言学习之基于VS软件连接SQL Server(利用ADO.NET操作数据库/添加新数据源/DataGridView数据表格控件)的简介、案例应用之详细攻略
- pl /sql导入导出表结构,表数据,sql脚本
- 但从谈论性能点SQL Server选择聚集索引键
- 016-Hadoop Hive sql语法详解6-job输入输出优化、数据剪裁、减少job数、动态分区
- sql工具和手工注入总结
- 【SQL开发实战技巧】系列(三十四):数仓报表场景☞如何对数据分级并行转为列
- MyBatis是支持普通 SQL查询
- SQL获取数据库中表信息:表名、建表时间、总行数、数据大小等