首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当检索大量字段时,如何在sql server中获得适当的计数?

当检索大量字段时,如何在sql server中获得适当的计数?
EN

Stack Overflow用户
提问于 2009-03-03 21:46:16
回答 3查看 1.3K关注 0票数 2

这是我的场景,

我有一个返回很多字段的查询。其中一个字段称为ID,我希望按ID分组,并按降序显示计数。然而,由于我带回了更多的字段,因此很难显示真实的计数,因为我必须按其他字段分组。下面是我正在尝试做的一个例子。如果我只有两个字段(ID,颜色),并且我按颜色分组,我可能会得到这样的结果:

ID颜色计数

== ==========

2%;红色;2%;10%

3%;蓝色;2%;5%。

4%;绿色;24%;

假设我添加了另一个字段,该字段实际上是同一个人,但是他们的名字拼写不同,这会导致计数错误,所以我可能会有这样的结果:

ID颜色名称计数

== ================

2岁的红帽乐队的吉姆·贝克汉姆和5岁的孩子们。

*5*

3个月的时候,红色世界的人,鲍勃的人,3个月的人。

3个月前,红宝石公司的罗伯特·贝克汉姆;第二个月。

4月4日,美国红宝石公司;约翰尼;美国;12月12日

4月4日,美国红宝石公司首席执行官约翰·斯图尔特;12号。

我希望能够带回ID、Color、Name和Count,但可以像第一个表一样显示计数。有没有办法使用ID来做到这一点呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-03 21:52:46

如果需要单个结果集,则必须省略名称,就像在第一篇文章中那样

代码语言:javascript
运行
复制
SELECT Id, Color, COUNT(*)
FROM YourTable
GROUP By Id, Color

现在,您可以使用子查询获得所需的功能,尽管这并不优雅

代码语言:javascript
运行
复制
SELECT Id, Color Name, (SELECT COUNT(*) 
                        FROM YourTable 
                        Where Id = O.Id 
                            AND Color = O.Color
                       ) AS "Count"
FROM YourTable O
GROUP BY Id, Color, Name

这应该可以如您所愿地工作

票数 3
EN

Stack Overflow用户

发布于 2009-03-03 22:00:14

试试这个:-

代码语言:javascript
运行
复制
 SELECT DISTINCT a.ID, a.Color, a.Name, b.Count
 FROM yourTable
 INNER JOIN (
     SELECT ID, Color, Count(1) [Count] FROM yourTable
     GROUP BY ID, Color
 ) b ON a.ID = b.ID, a.Color = b.Color
 ORDER BY [Count] DESC
票数 3
EN

Stack Overflow用户

发布于 2009-03-03 21:50:39

尝试执行子查询以获取计数。

-- MarkusQ

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/608355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档