乐趣区

关于sqlserver:练习SQL之汇总机构下面的医生总数

背景:练习 sql. 机构表和医生表. 汇总每个机构上面的医生总数. 去除机构下为 0 的医生行, 倒序展现.


sql 语句
select DISTINCT b.InstitutionID,InstitutionName,COUNT(ClientID) ClientSum 
from b_Institution b
left join  b_Client c on c.InstitutionID = b.InstitutionID 
group by b.InstitutionID , InstitutionName
having COUNT(ClientID) != 0
order 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

  • 对医生数量进行倒序排序

最初附上后果图:

退出移动版