我有一个包含以下字段的表:
domainname | domian_name_cert_no | keyvalue
是独一无二的domian_name_cert_no
,它以计数器结尾;1,2,3 等。有两个或更多domian_name_cert_no
共享的可能性keyvalue
。我需要列出这些案例。所以我有以下语句来列出第keyvalue
一个中的出现domian_name_cert_no
(即,仅没有=1。我不关心_2,_3中的重复项)。
select domainname, domian_name_cert_no, count(keyvalue), keyvalue
from db.table
where domian_name_cert_no like '%_1'
group by (keyvalue)
having count(keyvalue)>1;
假设一个输出如下: xyx , xyx_1 , 10 , 777
然后,根据前面的输出,我知道有 10 次出现,现在我需要详细列出这些共享的域名keyvalue
,所以我使用了:
SELECT a.*
FROM db.table a
INNER JOIN
(
SELECT keyvalue
FROM db.table
GROUP by keyvalue
HAVING COUNT(keyvalue) = 10
) b
ON a.keyvalue = b.keyvalue;
这些正确的陈述是否基于我对需要的解释?我不太确定我在第二个语句中做了什么:HAVING COUNT(keyvalue) = 10
。
请 MySQL 专家向我确认这些陈述是否正确。