1

クエリにgroupby句とorderby句の両方がある場合、実行の後にSQLが続くシーケンスはどうなりますか。それはクエリ内の彼らの位置に依存しますか?

4

8 に答える 8

6

ORDER BYによって実行されたグループ化の結果に対して常に実行されますGROUP BY。つまり、常に「後」に実行されます。標準SQLでは、両方が存在する場合は、事実を「思い出させる」ために、ORDER BY字句的に後を指定する必要があります。GROUP BY

于 2009-09-21T14:27:48.077 に答える
4

順番に:

FROM & JOIN s 行を決定してフィルター処理する
WHERE行にフィルターを追加する
GROUP BYこれらの行をグループに結合する
HAVINGフィルター グループ
ORDER BY残りの行/グループを配置する

于 2009-09-21T15:35:22.647 に答える
1

それはあなたが使用しているRDMSを含む多くのものに依存します。何が起こっているかを知る最良の方法は、クエリ実行プランを確認できるクエリツールを使用することです。

于 2009-09-21T14:28:31.437 に答える
1

通常、注文は最後に行われます。

SQL Serverを使用している場合は、クエリアナライザーを起動すると、実行プランによってクエリの優れたグラフィック表現が得られます。

于 2009-09-21T14:30:14.353 に答える
1

実行の順序は、SQL ステートメントによって強制されません。義務付けられているのは、結果が「正規の」評価によって得られる結果と一致することです。標準的な評価では、ORDER BY は最後に適用されますが (SELECT リスト式が評価された後でも)、実際のシステムでのクエリの実際の実行において、並べ替えがその時点まで延期されるわけではありません。

于 2009-09-21T15:46:07.903 に答える
0

group byが最初に実行され、次にグループの結果が並べ替えられます。

于 2009-09-21T14:27:47.497 に答える
0

SQL クエリがあるとします。

SELECT   ...
  FROM     ...
  WHERE    ...
  GROUP BY ...
  HAVING   ...
  ORDER BY ...

SQL クエリのサブ句が実行される順序は次のとおりです。

 1. FROM clause
 2. WHERE clause
 3. GROUP BY clause
 4. HAVING clause
 5. SELECT clause
 6. ORDER BY clause
于 2015-06-02T04:10:03.990 に答える