背景:练习sql.机构表和医生表.汇总每个机构上面的医生总数.去除机构下为0的医生行,倒序展现.
sql语句
select DISTINCT b.InstitutionID,InstitutionName,COUNT(ClientID) ClientSum from b_Institution bleft join b_Client c on c.InstitutionID = b.InstitutionID group by b.InstitutionID , InstitutionNamehaving COUNT(ClientID) != 0order by ClientSum desc
记录一下每一句sql的意思:
(1): select DISTINCT b.InstitutionID,InstitutionName,COUNT(ClientID) ClientSum
- 查问进去的后果列为三列.
- 第一列为去重后的InstitutionID
- 第二列为InstitutionName
- 第三列为客户总数列名为ClientSum
(2):from b_Institution b
- 查问主表为机构表 并取别名为b
(3):left join b_Client c on c.InstitutionID = b.InstitutionID
- 左联医生表(取别名为c)外面的机构ID和机构表的机构ID相等的数据
(4):group by b.InstitutionID , InstitutionName
- 对机构表的ID和Name进行分组(分组后就能够计算医生数量)
(5):having COUNT(ClientID) != 0
- 去除医生数量为0的数据
(6):order by ClientSum desc
- 对医生数量进行倒序排序
最初附上后果图: