musics というテーブルに4つの列があります-'artist','genre', 'writer' , 'producer'.
列名に対応する値の繰り返しがない場合、値 0 を返すようなクエリを作成する必要があります。値の繰り返しがある場合は、その列名に対応する値 1 を返す必要があります。
どんな助けでも大歓迎です
musics というテーブルに4つの列があります-'artist','genre', 'writer' , 'producer'.
列名に対応する値の繰り返しがない場合、値 0 を返すようなクエリを作成する必要があります。値の繰り返しがある場合は、その列名に対応する値 1 を返す必要があります。
どんな助けでも大歓迎です
SELECT (COUNT(artist) <> COUNT(DISTINCT artist)) artist,
(COUNT(genre) <> COUNT(DISTINCT genre)) genre,
(COUNT(writer) <> COUNT(DISTINCT writer)) writer,
(COUNT(producer) <> COUNT(DISTINCT producer)) producer
FROM musics
別バージョン
SELECT
( SELECT (COUNT(*) > 0)
FROM (SELECT 1 FROM musics GROUP BY artist HAVING COUNT(*) > 1) a
) artist,
( SELECT (COUNT(*) > 0)
FROM (SELECT 1 FROM musics GROUP BY genre HAVING COUNT(*) > 1) g
) genre,
( SELECT (COUNT(*) > 0)
FROM (SELECT 1 FROM musics GROUP BY writer HAVING COUNT(*) > 1) w
) writer,
( SELECT (COUNT(*) > 0)
FROM (SELECT 1 FROM musics GROUP BY producer HAVING COUNT(*) > 1) p
) producer
サンプルデータ
| artist | genre | writer | producer |
------------------------------------------
| artist1 | genre1 | writer1 | producer1 |
| artist2 | genre2 | writer1 | producer2 |
| artist1 | genre3 | writer3 | producer3 |
出力例:
| artist | genre | writer | producer |
--------------------------------------
| 1 | 0 | 1 | 0 |
ユニオンで4つの異なるクエリを使用できます。各クエリにはcount(列名)+ group by句が含まれている必要があります
指定された列で個別を使用して選択カウントステートメントを作成し、個別を使用せずに別の選択カウントを作成し、要件に基づいて両方を比較します