鍍金池/ 問答/數(shù)據(jù)庫/ SQL怎么統(tǒng)計(jì)去除重復(fù)的數(shù)據(jù)記錄?如果記錄重復(fù)不統(tǒng)計(jì)即計(jì)為0,只統(tǒng)計(jì)不重復(fù)的

SQL怎么統(tǒng)計(jì)去除重復(fù)的數(shù)據(jù)記錄?如果記錄重復(fù)不統(tǒng)計(jì)即計(jì)為0,只統(tǒng)計(jì)不重復(fù)的

如題,我要統(tǒng)計(jì)數(shù)據(jù)庫中的記錄個(gè)數(shù),要求某字段重復(fù)則計(jì)數(shù)為0。例如:一個(gè)保存銷售汽車發(fā)票的數(shù)據(jù)庫,里面有一個(gè)車架號碼的字段簡稱CJHM。我要統(tǒng)計(jì)當(dāng)月賣出的車的數(shù)量,但是去除掉CJHM相同的記錄。也就是如果有兩個(gè)記錄的CJHM相同,則這兩個(gè)記錄都不統(tǒng)計(jì)。例如下表:
ID CJHM XSSJ
1 ljh908 2018-06-07
2 ljh908 2018-06-07
3 33ert78 2018-06-10
4 9087jh1 2018-06-23

統(tǒng)計(jì)結(jié)果要求顯示為:2 也就是去除了CJHM相同的兩條記錄

回答
編輯回答
法克魷

不考慮效率的話:
select count(CJHM) from CarTable a
where (a.CJHM) not in (select CJHM from CarTable group by CJHM having count(*) > 1)

2017年5月21日 12:09
編輯回答
嘟尛嘴
SELECT COUNT(1)
FROM (
    SELECT 1
    FROM `car`
    GROUP BY `CJHM`
    HAVING COUNT(1)=1
) a;
2017年6月3日 14:43