sql group by

根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组
1、单字段分组
select  grade  from  student   group   by   grade       查出学生等级的种类(按照等级划分,去除重复的)
2、 多个字段分组

  select  name , sum(score)    from   student    group  by   name , grade      按照名字和等级划分,查看相同名字下的分数总和


注意:多个字段进行分组时,需要将name和grade看成一个整体,只要是name和grade相同的可以分成一组;如果只是name相同,grade不同就不是一组。

3、配合聚合函数一起使用
3-1、count():计数 查看表中相同dr_id 下 ds的个数
SELECT dr_id
,ds FROM study WHERE ds <= '20210621' AND ds > '20210520'and dr_id='193589';
查出结果是:8条记录

 用 group by   dr_id=193589,有8人

  

SELECT dr_id
,COUNT(DISTINCT ds) AS online_30d
FROM alihealth_dw.dwd_alihosp_dr_online_df
WHERE ds <= '20210621'
AND ds > '20210520'
AND is_online_1d = 'Y'
and dr_id='193589'
GROUP BY dr_id;

3-2、sum():求和

select  name , sum(salary)   from   student   group  by   name      查看表中人员的工资和(同姓的工资相加)

世界上最美的风景,是自己努力的模样
原文地址:https://www.cnblogs.com/xiong-hua/p/14924021.html