SQL查找列中每种类型的总计数

Wes*_*yle 12 sql

我正在学习SQL,并且对应该是一个简单的查询感到难过.我有一个具有以下模式的表:

Id |  Type  
------------
1  |  Red   
2  |  Blue  
3  |  Blue  
4  |  Red   
..
Run Code Online (Sandbox Code Playgroud)

我想编写一个查询来返回一个表,该表计算每种类型的实例总数,并返回一个具有以下模式的表,例如,如果"蓝色"出现在12行中,则"红色"出现在16行中在上表中,结果将是:

Blue | Red 
-----------
 12  |  16 
Run Code Online (Sandbox Code Playgroud)

Wil*_*ill 36

你可以这样做:

SELECT Type, COUNT(*) FROM TABLE GROUP BY Type
Run Code Online (Sandbox Code Playgroud)

如果您希望在单独的列中看到类型,则可以执行以下操作:

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
Run Code Online (Sandbox Code Playgroud)