mysql 统计数量的问题

image.png
这是结构与数据,我想实现数据是根据from_user_id去重后,再根据from_user_id去查询这个表一个from_user_id对应多少个user_id(也得去重)

image.png

通过程序循环是可以实现的,但是通过sql语法如何实现呢?

阅读 3k
4 个回答

提个思路

select count(distinct user_id) from tbl group by from_user_id

这种关系表必须有user_id和form_user_id的组合唯一键约束的,这样就直接避免了去重问题。

select 
    (select count(*) from t as b where b.from_user_id = a.from_user_id) as countNumber 
from t as a group by a.from_user_id

如果你之前没做唯一性约束,可以用以下方式检查

select count(*), * from t group by (user_id, from_user_id) having count(*) > 1

select user_id,count(user_id) from table where user_id in (select distinct from_user_id from AAA) group by user_id

使用 group by 做去重,并且需要多次去重

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题