GROUP BYとDISTINCTには違いがありますか? 質問する

GROUP BYとDISTINCTには違いがありますか? 質問する

次の 2 つのクエリはそれぞれ同じ結果を返します。

SELECT column FROM table GROUP BY column
SELECT DISTINCT column FROM table

これらのコマンドの処理方法には何か違いがありますか、それとも同じものですか?

(これは集計に関する質問ではありません。GROUP BY集計関数での の使用は理解されています。)

ベストアンサー1

ミュージジェネシス' の応答は、述べられているように、質問に関して機能的に正しいものです。SQL Server は、"Group By" を使用していて集計関数を使用していない場合は、実際に意味しているのは "Distinct" であることを認識できるほど賢いので、単に "Distinct" を使用した場合と同じように実行プランを生成します。

しかし、私は次のことに注意することが重要だと思う。ハンクの回答も同様です。「Group By」と「Distinct」を軽々しく扱うと、注意しないと後で悪質な問題が発生する可能性があります。これは「集計に関する質問ではない」と言うのは完全に正しいとは言えません。なぜなら、2 つの SQL クエリ キーワードの機能的な違いについて質問しているからです。そのうちの 1 つは集計で使用することを意図しており、もう 1 つはそうではありません。

ハンマーを使ってネジを締めることもできますが、ドライバーが手元にあるなら、わざわざハンマーを使う必要はありません。

(この類推の目的のため、Hammer : Screwdriver :: GroupBy : Distinctそしてscrew => get list of unique values in a table column

おすすめ記事