1. ホーム
  2. sql

[解決済み] GROUP BYとDISTINCTの違いは何ですか?

2022-03-26 02:12:22

質問

先日、SQLについて簡単なことを学びました。

SELECT c FROM myTbl GROUP BY C

と同じ結果を持つ。

SELECT DISTINCT C FROM myTbl

SQLエンジンがコマンドを処理する方法に何か違いがあるのか、それとも本当に同じものなのか、気になるところです。

個人的には、はっきりした構文の方が好きなのですが、きっと習慣的にそうなっているのでしょう。

編集部:これはアグリゲートに関する質問ではありません。の使い方です。 GROUP BY をアグリゲート関数と一緒に使うことは理解できる。

どのように解決するのですか?

ムシジェネシス SQL Server は賢いので、もしあなたが "Group By" を使用していて、集約関数を使用していない場合、あなたが実際に意味しているのは "Distinct" であると認識し、あたかもあなたが単に "Distinct." を使用しているかのように実行計画を生成します。

しかし、私は、次のことに注意することが重要だと思います。 ハンク Group ByとDistinctの扱いを軽んじると、後々大変なことになる可能性があります。 なぜなら、あなたは2つのSQLクエリキーワードの機能的な違いについて質問しているのですから。 集合体と共に使用することを意図している と、そうでないものがあります。

ハンマーでネジを打ち込むこともできますが、ドライバーがあるのなら、わざわざ打ち込む必要はないでしょう?

(この例えのために Hammer : Screwdriver :: GroupBy : Distinctscrew => get list of unique values in a table column )