こんにちは、ありがとう。複数の列にわたってcount = 1のレコードを数えて選択する方法
2つのSQL文を簡略化しようとすると、大したことはありません。表中の
- カウントユニークなレコードがユニークで、私は、全体のレコードが唯一発見された意味(
- は、テーブル内のユニークなレコードを選択します(ユニークで、私は、全体のレコードがテーブルに一度だけ発見された平均値)
テーブルには30個の列があるため、SQLに個別にすべてを含めるのではなく、単にテーブルのすべての列を指定する方法がありますか?
私はあなたがすべての列名を綴るこの作業を得た(「COL nは名前が」最後の列を指します)が、ちょうどそう多くの列があるので、それは理想的ではありません...
SELECT col 1 name, col 2 name, col 3 name, …, col n name FROM table name
GROUP BY col 1 name, col 2 name, col 3 name, …, col n name
Having Count(*)=1
おかげ deutz
を、あなたはすべての列を指定する必要があります。入力しない場合は、スキーマのメタデータを使用して名前を取得できます。 –
#2の場合は、少なくとも列名の完全なリストを2度目に繰り返す 'GROUP BY'節の必要性を取り除く、' SELECT DISTINCT'を使うことができます。 –
ゴードンとティムに感謝します。ティム、DISTINCTはテーブルに何回出現するかにかかわらず、各レコードの1つを取得すると思います。私はテーブルに一度だけ現れるレコードだけを必要とします。残念ながら、WHERE句にCOUNT = 1を指定することはできません。 – deutz