建立表 sql
CREATE TABLE [dbo].[color]( [id] [int] IDENTITY(1,1) NOT NULL, [color] [varchar](50) NULL ) ON [PRIMARY]
随机插入数据 spa
id | color |
1 | green |
2 | red |
3 | blue |
4 | green |
5 | red |
6 | red |
统计每种 颜色的数量 code
当须要使用一个语句查询每种颜色的数量时,不能把颜色条件放进WHERE条件中, 由于每种颜色是互斥的。 ci
red | blue |
green |
3 |
1 |
2 |
下面SQL可获得上面的结果: table
SELECT SUM(CASE WHEN(color = 'red') THEN 1 END) AS red, SUM(CASE WHEN(color = 'blue') THEN 1 END) AS blue, SUM(CASE WHEN(color = 'green') THEN 1 END) AS green FROM [dbo].[color]
或者 class
SELECT COUNT(CASE WHEN(color = 'red') THEN 1 END) AS red, COUNT(CASE WHEN(color = 'blue') THEN 1 END) AS blue, COUNT(CASE WHEN(color = 'green') THEN 1 END) AS green FROM [dbo].[color]