select * from u_md_dm.s_temp_import_d;
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;
另:也可以用下面的語句實現:
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