首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用相同id但不同列值的计数记录

使用相同id但不同列值的计数记录
EN

Database Administration用户
提问于 2018-05-21 00:01:03
回答 1查看 14.3K关注 0票数 1

我有下表:

代码语言:javascript
复制
+------+------+
|userID|Name  |
+------+------+
|1     |sport |
+------+------+
|2     |it    |
+------+------+
|3     |game  |
+------+------+
|1     |sport |
+------+------+
|1     |game  |
+------+------+
|3     |it    |
+------+------+
|3     |sport |
+------+------+
|2     |it    |
+------+------+

我希望计算每个UserID的总记录数,如果所有这些记录都是唯一的/具有相同的名称。示例:

  • userID 1:体育、体育、游戏
  • userID 2:它,它
  • userID 3:游戏,it,体育

我应该得到:

  • userId 1: 3,假
  • userID 2: 2,真
  • userID 3: 3,假
EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-05-21 00:17:28

每个UserID的总行数很简单,您只需使用COUNT(*)即可。至于另一列,假设Name不能为null,则需要计数不同的Name值,并将结果与1进行比较。要解释:如果所有名称相同,COUNT(DISTINCT Name))将返回1,否则将返回不同的数字。因此,通过将结果与1进行比较,您将确定是否所有名称都是唯一的。

这就是我在SQL中实现它的方式:

代码语言:javascript
复制
SELECT
  UserID,
  COUNT(*)                   AS TotalRows,
  (COUNT(DISTINCT Name) = 1) AS AllNamesUnique
FROM
  YourTable
GROUP BY
  UserID
;

请随意使用此解决方案在dbfiddle.uk

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

https://dba.stackexchange.com/questions/207342

复制
相关文章

相似问题

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