我有以下查询:
SELECT num1
-> from table4
-> WHERE suffix IN ('mt', 'dn')
-> GROUP BY num1
-> HAVING COUNT(DISTINCT suffix) = 2;
这告诉我以下内容:
1563866656871111
1563866656876839
1563866656878888
1563867854324841
我怎么只能得到数字4?
谢谢您的帮助:)
答案 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