首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正确使用Group、Count和Count

正确使用Group、Count和Count
EN

Stack Overflow用户
提问于 2014-03-08 18:44:07
回答 3查看 51关注 0票数 0

我有一个类别和项目的列表,我只想返回有一种类型的项目的类别。例如:

料理桌:

代码语言:javascript
运行
复制
Cat 1 | Item 1
Cat 1 | Item 1
Cat 1 | Item 2
Cat 1 | Item 2
Cat 1 | Item 3
Cat 1 | Item 3
Cat 1 | Item 3
Cat 2 | Item 1
Cat 2 | Item 1

我想回去

代码语言:javascript
运行
复制
Cat 2  | Item 1

我试过:

代码语言:javascript
运行
复制
SELECT category, item
FROM stuff
GROUP BY category, item
HAVING Count(Distinct item) = 1

但这不管用。我返回:

代码语言:javascript
运行
复制
Cat 1 | Item 1
Cat 1 | Item 2
Cat 1 | Item 3
Cat 2 | Item 1
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-08 18:54:32

您应该从item子句中删除GROUP BY,然后运行以下命令:

代码语言:javascript
运行
复制
SELECT category, MAX(item)
FROM stuff
GROUP BY category
HAVING COUNT(DISTINCT item) = 1

例如SQLFiddle

否则,从GROUP BY子句返回的每个组自然会有一个不同的项。

票数 1
EN

Stack Overflow用户

发布于 2014-03-08 18:55:47

代码语言:javascript
运行
复制
SELECT category, MAX(item)
FROM Table1
GROUP BY category
HAVING Count(Distinct item) = 1
票数 2
EN

Stack Overflow用户

发布于 2014-03-08 18:55:10

可能您的数据库不允许在select中有一个变量,该变量既不属于组也不聚合。

利用只有一个项目的优势,您可以尝试:

代码语言:javascript
运行
复制
SELECT category, MIN(item) AS item
FROM stuff
GROUP BY category
HAVING Count(Distinct item) = 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22273504

复制
相关文章

相似问题

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