こんにちは。ぽこです!
今回は、SQLであるカラムに対して、特定のカラムが一意にならないものを表示する方法を紹介します。
作成したSQL
1 2 3 4 5 6 7 8 |
select col1, col2, count(col1) from ( select col1, col2, col3, col4 from table_name group by col1, col2, col3, col4 ) group by col1, col2 having count(col1)>1 |
ここでは、col1, col2が同一で、col3, col4が異なるデータと、その数を出力します。
having count(col1)>1を指定することで col1, col2に対して、col3, col4 が一意でないものだけに絞って表示することができます。
これは、プライマリーキーの設定を考えるときに使えます。
例えば、このSQLを実行して行が出力されなければ、 col3, col4 はプライマリーキーに設定する必要がなさそう、など。
使ってみてください。