SELECT count(*), lower(name), number
FROM tbl
GROUP BY lower(name), number
HAVING count(*) > 1;
入力 tb1
slno name number
1 aaa 111
2 Aaa 111
3 abb 221
4 Abb 121
5 cca 131
6 cca 141
7 abc 222
8 cse 222
このクエリは、同じ番号と名前の重複を見つけることができますが、3行目と4行目で重複を見つけることはできません!!!
SELECT count(*), lower(name)
FROM tbl
GROUP BY lower(name)
HAVING count(lower(name)) > 1
このクエリは、名前のすべての重複を見つけることができます!!! それは完璧に動作します
SELECT count(*), number
FROM tbl
GROUP BY number
HAVING count(number) > 1
このクエリは、番号内のすべての重複を見つけることができます!!! それは完璧に動作します
名前が小文字と大文字で構成されているかどうかにかかわらず、名前と番号の両方ですべての重複を見つけることができるクエリが必要です
output
name number count
2 111 aaa
2 --- abb
2 --- cca
2 222 ---