mysql - 从同一张表中选择分组依据

标签 mysql sql group-by

我有一个像这样的表 users:

id user refid
1  a    null
2  b    1
3  c    1
4  d    2
5  f    3

我需要选择用户,按 refid 分组以及每个用户的每个 refid 计数。例如,

id    user count
1      a     2
2      b     1
3      c     1

这是我试过的:

SELECT user, refid, count(*) cnt FROM `users` group by refid

但是,这给了我错误的每个值的用户。如何为每个值获取正确的用户?

最佳答案

我想这就是您要找的。基本上,您在那里缺少连接。

select u1.id, u1.user, count(u1.id) cnt from mlm_users u1
join mlm_users u2 on u1.id = u2.refid
group by u1.id, u1.user

这将返回 ID、用户和他们每个人拥有的推荐量(仅适用于至少有一个推荐的那些)。

关于mysql - 从同一张表中选择分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19128125/

相关文章:

sql - 从 GROUP BY 操作中选择最大计数

python - 如何计算满足特定条件的pandas groupby的值

mysql - 如何在 bash 脚本中使用 SQL Update 功能

mysql - 在 MySQL 中存储 SHA1 哈希值

c# - SQL 连接

mysql - 创建一个新的提取字符串 sql 列

php - 哪里喜欢 - Doctrine - symfony

php - 从空表(mysql)中选择列的默认值

mysql - 我没有按照 DESC 顺序正确获取 row_num()

MySQL 按 ID 和最新日期时间分组