检索跨多个列的非重复计数
Retrieving the distinct count across multiple columns
假设我在 MS SQL 服务器中有以下 table:
Make
Model
Year
Honda
Accord
1997
Honda
Accord
1997
Honda
Accord
1997
Honda
Civic
2001
Honda
Civic
2005
Honda
Civic
2005
Toyota
Corolla
2010
Nissan
Pathfinder
1997
我希望能够检索唯一组合的计数并获得如下结果:
Make
Model
Year
Count
Honda
Accord
1997
3
Honda
Civic
2001
1
Honda
Civic
2005
2
Toyota
Corolla
2010
1
Nissan
Pathfinder
1997
1
我认为我可以使用 COUNT(DISTINCT())
之类的东西,但是跨多个列的 COUNT(DISTINCT())
在 MS SQL 服务器中无效。我觉得我必须使用 GROUP BY
,但我不确定从哪里开始。
它只是分组并计算它们:
select Make ,Model, Year, COUNT(*)
from your table
group by Make ,Model, Year
您可以用实际的 table 名称替换您的table。
Select Make,
Model,
Year,
count(*) Count
From yourtable
Group by Make,
Model,
Year
假设我在 MS SQL 服务器中有以下 table:
Make | Model | Year |
---|---|---|
Honda | Accord | 1997 |
Honda | Accord | 1997 |
Honda | Accord | 1997 |
Honda | Civic | 2001 |
Honda | Civic | 2005 |
Honda | Civic | 2005 |
Toyota | Corolla | 2010 |
Nissan | Pathfinder | 1997 |
我希望能够检索唯一组合的计数并获得如下结果:
Make | Model | Year | Count |
---|---|---|---|
Honda | Accord | 1997 | 3 |
Honda | Civic | 2001 | 1 |
Honda | Civic | 2005 | 2 |
Toyota | Corolla | 2010 | 1 |
Nissan | Pathfinder | 1997 | 1 |
我认为我可以使用 COUNT(DISTINCT())
之类的东西,但是跨多个列的 COUNT(DISTINCT())
在 MS SQL 服务器中无效。我觉得我必须使用 GROUP BY
,但我不确定从哪里开始。
它只是分组并计算它们:
select Make ,Model, Year, COUNT(*)
from your table
group by Make ,Model, Year
您可以用实际的 table 名称替换您的table。
Select Make,
Model,
Year,
count(*) Count
From yourtable
Group by Make,
Model,
Year