mysql按两个维度统计_按照行、列进行统计(按两个维度进行统计)

本文介绍了如何使用MySQL查询语句,按照年份和不同姓名统计每个人的签到次数。通过案例展示了两种不同的SQL写法,一种是直接在查询中使用CASE WHEN语句,另一种是利用WITH子句进行预处理,然后进一步聚合统计。
摘要由CSDN通过智能技术生成

select * from u_md_dm.s_temp_import_d;

760b6dd4466e59ecc2ddd334dce6d196.png

1、按照年和姓名来统计每个人每年的签到次数

select k.dates,sum(case when k.pro_d_name='张三' then k.times else 0 end) 张三,sum(case when k.pro_d_name='李四' then k.times else 0 end) 李四,sum(case when k.pro_d_name='王五' then k.times else 0 end) 王五

from (

select substr(pro_d_no,0,5) dates,pro_d_name,count(1) times from u_md_dm.s_temp_import_d group by substr(pro_d_no,0,5),pro_d_name) k

group by k.dates;

0a91e2046fa2be1f9164cf320ccfa838.png

另:也可以用下面的语句实现:

with k as

(select substr(pro_d_no,0,5) dates,pro_d_name,count(1) times from u_md_dm.s_temp_import_d group by substr(pro_d_no,0,5),pro_d_name)

select

k.dates,sum(case when k.pro_d_name='张三' then k.times else 0 end) 张三,sum(case when k.pro_d_name='李四' then k.times else 0 end) 李四,sum(case when k.pro_d_name='王五' then k.times else 0 end) 王五

from k group by k.dates

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值