SQL统计行所属的某些类别的出现次数
我有这张表和一些数据:SQL统计行所属的某些类别的出现次数,sql,count,group-by,Sql,Count,Group By,我有这张表和一些数据: table ColorsFlavors id | name | color | flavor -------------------------- 1 | n1 | green | lemon 2 | n2 | blue | strawberry 3 | n3 | red | lemon 4 | n4 | green | lemon 5 | n5 | green | mango 6 | n6 | red | chocolat
table ColorsFlavors
id | name | color | flavor
--------------------------
1 | n1 | green | lemon
2 | n2 | blue | strawberry
3 | n3 | red | lemon
4 | n4 | green | lemon
5 | n5 | green | mango
6 | n6 | red | chocolate
7 | n7 | white | lemon
8 | n8 | blue | mango
9 | n9 | green | chocolate
我想进行一个或多个SQL查询?这让我可以得到每种颜色的总行数,以及每种味道的总行数
大概是这样的:
colors | occurrences
--------------------
green | 4
blue | 2
red | 6
white | 1
flavor | occurences
----------------------
lemon | 4
strawberry| 1
mango | 2
chocolate | 2
嗯,如果我有一个预定义的颜色和口味列表可供选择,那么数据表中未出现的颜色/口味的计数为0,那又如何呢
colors | occurrences
--------------------
green | 4
blue | 2
red | 6
white | 1
black | 0
flavor | occurences
----------------------
lemon | 4
strawberry| 1
mango | 2
chocolate | 2
cherry | 0
那么,检索这些颜色的SQL查询是什么呢?执行ColorsFlavors表中的所有颜色
Select
cf.Color,
Count(*)
From
ColorsFlavors cf
Group By
cf.Color
如果在我称之为颜色的表中有一个预定义列表,并且希望包含零:
Select
c.Color,
Coalesce(Count(*), 0)
From
Colors c
Left Outer Join
ColorsFlavors cf
On c.Color = cf.Color
Group By
c.Color
如果你有一个预定义的列表,有人输入
Select
c.Color,
Coalesce(Count(*), 0)
From (
Select 'green' As Color Union All
Select 'blue' Union All
Select 'red' Union All
Select 'white' Union All
Select 'black'
) c
Left Outer Join
ColorsFlavors cf
On c.Color = cf.Color
Group By
c.Color
有了这个,你应该能够找出味道 执行ColorsFlavors表中的所有颜色
Select
cf.Color,
Count(*)
From
ColorsFlavors cf
Group By
cf.Color
如果在我称之为颜色的表中有一个预定义列表,并且希望包含零:
Select
c.Color,
Coalesce(Count(*), 0)
From
Colors c
Left Outer Join
ColorsFlavors cf
On c.Color = cf.Color
Group By
c.Color
如果你有一个预定义的列表,有人输入
Select
c.Color,
Coalesce(Count(*), 0)
From (
Select 'green' As Color Union All
Select 'blue' Union All
Select 'red' Union All
Select 'white' Union All
Select 'black'
) c
Left Outer Join
ColorsFlavors cf
On c.Color = cf.Color
Group By
c.Color
有了这个,你应该能够找出味道 嗯,没有颜色表,但也许我可以通过连接“模拟”一个颜色表?@JavierNovoaC。你说如果你有一个预定义的颜色列表可供选择怎么办。“你从哪里弄来的?”贾维尔·诺沃克。我已经添加了更多选项。嗯,没有颜色表,但也许我可以通过连接“模拟”一个颜色?@JavierNovoaC。你说如果你有一个预定义的颜色列表可供选择怎么办。“你从哪里弄来的?”贾维尔·诺沃克。我已经加入了更多的选择。