資料庫表如果下
表名:顧客表
欄位如下:
顧客ID,姓名,性別
從業務上,同一個顧客ID,應該姓名和性別相同。但是在表中存在臟資料,需要抽出看看有多少,同一顧客ID,但是姓名和性別不同
EX:
顧客ID,姓名,性別
1 張三 男
1 張三 男
2 張三 男
2 李四 男
2 李四 女
3 張三 男
3 李四 男
3 李四 女
如上面的資料,顧客ID為1的資料是正確的,它們的姓名,性別都相同
但是顧客ID為2,3的,它們的姓名,性別不同,本不應該是一個人,所以顧客ID相同了就是臟資料
我想取得的結果,是這樣的顧客ID為臟資料的個數 。
也就是結果:2
(*顧客ID:2,3。這兩個ID是臟資料)
我試著寫了寫
select count(*) from (
Select 顧客ID,姓名,性別
From 顧客表 as t inner join(
Select 顧客ID,姓名,性別
From 顧客表
Group by 顧客ID,姓名,性別) as t1
On t. 顧客ID= t1. 顧客ID and (t. 姓名 <> t1. 姓名 OR t. 性別 <> t1. 性別)
Group by 顧客ID,姓名,性別)
)
但是感覺我寫的應該不對,求教
uj5u.com熱心網友回復:
select count(1) from(select 顧客ID
from 顧客表
group by 顧客ID having count(distinct 姓名||性別)>1
) t;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/133810.html
標籤:基礎和管理
上一篇:求助Java大佬
