mysql のグループ化と並べ替え
GROUP BY と ORDER BY は同じ仕事を行うことがよくありますが、大きく異なります。以下の表は、それらの違いをまとめたものです。
表にリストされている最初の違いは非常に重要です。 GROUP BY を使用してグループ化されたデータが実際にグループ順に出力されることがよくあります。しかし、これは常に当てはまるわけではなく、SQL 仕様では必須ではありません。さらに、ユーザーは項目をグループ化とは異なる順序で並べ替えるよう要求する場合があります。 (特定のグループ化された集計値を取得するために) データを特定の方法でグループ化したからといって、同じ方法で出力を順序付けする必要があるというわけではありません。たとえその効果が GROUP BY 句と同じであっても、明示的な ORDER BY 句を指定する必要があります。 ORDER BY を忘れないでください: 通常、GROUP BY 句を使用するときは、
にも ORDER BY 句を指定する必要があります。これは、データが正しく並べ替えられていることを保証する唯一の方法です。データの並べ替えを GROUP BY だけに依存しないでください。 GROUP BY と ORDER BY の使用法を説明するために、例を見てください。以下の SELECT ステートメントは、前の例と似ています。合計注文価格が 50 以上の注文の注文番号と合計注文価格を取得します。 入力:
select order_num,sum(quantity*item_price) as ordertotal from orderitems group by order_num having sum(quantity*item_price) >= 50;
出力:
出力を合計注文価格で並べ替えるには、以下が必要です。以下に示すように、ORDER BY 句を追加します。 入力:select order_num,sum(quantity*item_price) as ordertotal from orderitems group by order_num having sum(quantity*item_price) >= 50 order by ordertotal;出力: 分析: この例では、GROUP BY 句を使用してデータを注文番号 (order_num 列) でグループ化します。 SUM(*) 関数は合計注文価格を返すことができることを確認します。 HAVING サブセンテンスは、合計注文価格が 50 以上の注文のみが返されるようにデータをフィルターします。最後に、ORDER BY 句を使用して出力を並べ替えます。
SELECT 句の順序 SELECT ステートメント内の句の順序を確認してみましょう。表 13-2 は、これまで学習した句を、SELECT ステートメントで を使用するときに従う必要がある順序で示しています。
【関連する推奨事項】
mysqlデータのグループ化: グループ化の作成以上がmysql データのグループ化と並べ替え、および SELECT 句の順序の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。