我正在学习sql,并且难以理解应该是一个简单的查询.我有一个具有以下模式的表:
Id | Type ------------ 1 | Red 2 | Blue 3 | Blue 4 | Red ..
我想编写一个查询来返回一个表,该表计算每种类型的实例总数,并返回一个具有以下模式的表,例如,如果12行中出现“蓝色”,则16行中出现“红色”在上表中,结果将是:
Blue | Red ----------- 12 | 16
解决方法
你可以这样做:
SELECT Type,COUNT(*) FROM TABLE GROUP BY Type
如果您希望在单独的列中看到类型,则可以执行以下操作:
SELECT SUM(CASE WHEN Type = 'Blue' THEN 1 ELSE 0 END) AS Blue,SUM(CASE WHEN Type = 'Red' THEN 1 ELSE 0 END) AS Red FROM TABLE