检索跨多个列的不同计数
Posted
技术标签:
【中文标题】检索跨多个列的不同计数【英文标题】:Retrieving the distinct count across multiple columns 【发布时间】:2021-06-22 08:31:21 【问题描述】:假设我在 MS SQL Server 中有下表:
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())
之类的东西,但在 MS SQL Server 中,跨多个列的 COUNT(DISTINCT())
无效。我觉得我必须使用GROUP BY
,但我不知道从哪里开始。
【问题讨论】:
这不只是一个COUNT
..?什么DISTINCT
值,在组内,你在这里数?您只向我们展示了 3 列,而且它们似乎都在该组中。您是否没有向我们展示第 4 列?
【参考方案1】:
它只是分组并计算它们:
select Make ,Model, Year, COUNT(*)
from your table
group by Make ,Model, Year
【讨论】:
【参考方案2】:您可以将 yourtable 替换为实际的表名。
Select Make,
Model,
Year,
count(*) Count
From yourtable
Group by Make,
Model,
Year
【讨论】:
以上是关于检索跨多个列的不同计数的主要内容,如果未能解决你的问题,请参考以下文章
按标志检索与时间相关的数据统计(计数),按外部 id 拆分,跨多个表,在一个数据集中返回
使用 CriteriaBuilder 的 JPA 计数(*)。如何使用 CriteriaBuilder 检索 count(*) 列