Mysql 如何获取具有重复列的行数?
假设下面是我的表格Mysql 如何获取具有重复列的行数?,mysql,Mysql,假设下面是我的表格 id | name | topic | reply ... 1 | user1 | 00001 | yes ## replied on topic 00001 2 | user2 | 00002 | yes ** replied on topic 00002 3 | user1 | 00001 | yes ## replied on topic 00001 4 | user5 | 00001 | n
id | name | topic | reply
...
1 | user1 | 00001 | yes ## replied on topic 00001
2 | user2 | 00002 | yes ** replied on topic 00002
3 | user1 | 00001 | yes ## replied on topic 00001
4 | user5 | 00001 | no
5 | user1 | 00001 | yes ## replied on topic 00001
6 | user1 | 00002 | no
7 | user2 | 00002 | yes ** replied on topic 00002
8 | user3 | 00001 | no
9 | user4 | 00002 | yes
假设这是一个主题表。仅user1和user对单个主题进行多次回复(主题00001和00002)
如何选择一个主题多次回复的用户数量,该数量应从5返回2这将为您提供一个主题多次回复的用户数量:
SELECT COUNT(DISTINCT name)
FROM (
SELECT name
FROM yourtable
WHERE reply = 'yes'
GROUP BY name, topic
HAVING COUNT(*) > 1
) T1
首先,您需要计算出每个用户对每个主题的回复数量,然后统计对任何主题有多个回复的不同用户的数量
SELECT COUNT(DISTINCT name) FROM (
SELECT name, topic, count(*) replies
FROM table
WHERE reply = 'yes'
GROUP BY name, topic
) a
WHERE replies > 1
哇,谢谢你,伙计。我得花一天时间自己写这样的问题。:)