MySQL - 从重复项中选择

时间:2015-12-15 10:54:21

标签: mysql sql select group-by having

SELECT sample_number, date_sampled, date_completed, COUNT(*) c FROM tbl_sample GROUP BY sample_number HAVING c > 1

以上查询给出了所有重复的样本编号,如下所示: -

'483662','0000-00-00 00:00:00','0000-00-00 00:00:00','2'
'493812','2011-10-14 00:00:00','2011-10-28 11:24:11','2'
'497558','1970-01-01 01:00:00','1970-01-01 01:00:00','2'

例如,查看样本号483662: -

'483662','0000-00-00 00:00:00','0000-00-00 00:00:00'
'483662','2011-09-02 00:00:00','2011-10-04 09:39:31'

我需要扩展此查询并选择所有重复的样本编号,其中date_completed是'0000-00-00 00:00:00'或'1970-01-01 01:00:00'

知道我该怎么做吗?

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT DISTINCT A.sample_number 
FROM tbl_sample A 
INNER JOIN (SELECT sample_number, COUNT(*) c 
            FROM tbl_sample 
            GROUP BY sample_number HAVING c > 1
           ) AS B ON A.sample_number = B.sample_number 
WHERE A.date_completed IN ('0000-00-00 00:00:00', '1970-01-01 01:00:00')

答案 1 :(得分:0)

SELECT sample_number, COUNT(1) AS c 
FROM tbl_sample
WHERE sample_number IS NOT NULL 
AND (date_completed='0000-00-00 00:00:00' OR date_completed='1970-01-01 01:00:00')
GROUP BY sample_number 
HAVING COUNT(1) > 1