如果我有一张叫做“建筑物”的桌子。
c(...)
我想要的是打印出Bldg名称以及每栋建筑物中容量超过20的房间总数。所以看起来应该是这样的:
a 4 75097 72607 72607 62572
b NA
c 5 113116 5372 5372 11767
d 4 11767 85822 85822 82080 82080 77055
我是否走在正确的轨道上:
Room_No Bldg Capacity
112 SCEN 23
242 JBHT 25
542 SCEN 4
324 JBHT 24
答案 0 :(得分:2)
您可以使用CASE
:
Select Bldg, Count(CASE WHEN Capacity > 20 THEN 1 END) as Total
from Buildings
Group By Bldg
ORDER BY Total DESC;
如果您使用的是Postgresql
,则可以将其重写为:
Select Bldg, Count(1) FILTER(WHERE Capacity>20) as Total
from Buildings
Group By Bldg
ORDER BY Total DESC;
<强> Rextester Demo 强>
答案 1 :(得分:1)
对于这个问题,其他答案似乎过于复杂。解决方案很简单:
SELECT Bldg, COUNT(*) AS count
FROM Buildings
WHERE Capacity > 20
GROUP BY Bldg