计数发生总数

时间:2019-09-17 10:46:31

标签: mysql sql

我有以下查询:

SELECT num1
    -> from table4
    -> WHERE suffix IN ('mt', 'dn')
    -> GROUP BY num1
    -> HAVING COUNT(DISTINCT suffix) = 2;

这告诉我以下内容:

1563866656871111 
1563866656876839 
1563866656878888 
1563867854324841

我怎么只能得到数字4?

谢谢您的帮助:)

3 个答案:

答案 0 :(得分:1)

您可以只包装现有查询:

SELECT COUNT(*)
FROM (
    SELECT num1
    FROM table4
    WHERE suffix IN ('mt', 'dn')
    GROUP BY num1
    HAVING COUNT(DISTINCT suffix) = 2
) x

注意:给定您的示例数据,它将返回3,而不是4

答案 1 :(得分:0)

修改问题后,您似乎需要以下内容

SELECT num1
FROM table4
WHERE suffix IN ('mt', 'dn')
GROUP BY num1
HAVING COUNT(DISTINCT suffix)!<>2

答案 2 :(得分:0)

如果您要计算行数,则可以使用它。

SELECT COUNT(x.num1)
    FROM (
        SELECT num1
        FROM table4
        WHERE suffix IN ('mt', 'dn')
        GROUP BY num1
        HAVING COUNT(DISTINCT suffix) = 2
    ) x