全部,
抱歉 - 这可能是一个非常简单的 SQL 问题,但我不知道如何编写谷歌搜索来获得我需要的东西。
我有一个看起来像这样的表:
id color points
--- ----- ------
1 red 10
2 blue 20
3 blue 30
4 red 100
5 blue 70
6 blue 200
7 red 30
我想知道两件事:
- 有多少行 color='red',有多少行 color='blue'?
- color='red' 和 color='blue' 的行的总点数是多少?
使用count()
、sum()
和group by
,我可以轻松创建如下所示的结果集:
select
color,
count(color),
sum(points)
from
my_table
group by
color
color count points
----- ----- ------
red 3 140
blue 4 320
但是,我真正想要的是如下所示的一行结果:
red_count red_points blue_count blue_points
--------- ---------- ---------- -----------
3 140 4 320
对于它的价值——我理想的查询不需要灵活地处理不确定数量的不同颜色;假设总是有而且只有两种颜色,我 100% 可以。
另外 - 在这种情况下,我使用的是 SQL Server,如果解决方案使用特定的东西,我没问题。(当然,通用的 SQL 解决方案会更好......)
提前致谢!