前几天工作中遇到了一个数据库统计相关的东西,主要使用case,when实现,现在说说基本情况:
有两个表school,studens,其中
school表结构如下:
students表结构如下:
vc+0q82zo6zP67eovPK1paOstavKx3NxbLn9s6ShoyA8YnI+CjIussnTw2Nhc2Usd2hlbtPvvuSjrNTaY291bnS+27rPuq/K/cq508OjrL7fzOW0+sLryOfPwqO6PC9wPgoKCgo8cHJlIGNsYXNzPQ=="brush:sql;">SELECT c.id , c.NAME , ( c.boyCount + c.girlCount ) AS TotalCount , c.boyCount , c.girlCount FROM ( SELECT b.id , b.name , COUNT(CASE WHEN a.sex = 1 THEN 1 ELSE NULL END) AS boyCount , COUNT(CASE WHEN a.sex = 2 THEN 1 ELSE NULL END) AS girlCount FROM [guagua_new_event_system_test].[dbo].[students] a , [guagua_new_event_system_test].[dbo].[school] b WHERE a.school_id = b.id GROUP BY b.id , b.name ) AS c
算是数据库的一种学习吧!
路漫漫其修远兮,吾将上下而求索!