次の 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
)