我正在学习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