1

うまく説明できる語彙がない SQL の問題があります。

ここに簡単な表があります。私の目標は、Tax_ID が等しくないグループを特定することです。この場合、クエリはグループ 1 と 3 を返す必要があります。

Group   Line_ID     Tax_ID
1   1001        11
1   1002        13
2   1003        17
2   1004        17
3   1005        23
3   1006        29

行全体の比較は簡単に実行できますが、テーブルを「下方向」に比較する方法がわかりません (ここで私の語彙が失敗するのが実際です)。つまり、SQL がグループ内の Tax_ID 値を比較する構文は何ですか?

どんな助けでも感謝します、

  • OB
4

1 に答える 1

2

最も簡単な方法はgroup byhaving句を使用することです。

select "group"
from t
group by "group"
having min(tax_id) <> max(tax_id);

having節を次のように表現することもできます。

having count(distinct tax_id) > 1;

ただし、単なるor操作count(distinct)よりもコストがかかります。min()max()

于 2013-07-19T20:33:31.647 に答える