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      查看表中人员的工资和(同姓的工资相加)

 

 

posted @ 2021-06-23 18:22  大熊童鞋  阅读(80)  评论(0编辑  收藏  举报