Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何获取具有重复列的行数?_Mysql - Fatal编程技术网

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

哇,谢谢你,伙计。我得花一天时间自己写这样的问题。:)