ホームページ >データベース >mysql チュートリアル >mysql データのグループ化と並べ替え、および SELECT 句の順序

mysql データのグループ化と並べ替え、および SELECT 句の順序

巴扎黑
巴扎黑オリジナル
2017-05-09 13:50:002362ブラウズ

mysql のグループ化と並べ替え

GROUP BY と ORDER BY は同じ仕事を行うことがよくありますが、大きく異なります。以下の表は、それらの違いをまとめたものです。

mysql データのグループ化と並べ替え、および SELECT 句の順序

表にリストされている最初の違いは非常に重要です。 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;
mysql データのグループ化と並べ替え、および SELECT 句の順序出力:

分析: この例では、GROUP BY 句を使用してデータを注文番号 (order_num 列) でグループ化します。 SUM(*) 関数は合計注文価格を返すことができることを確認します。 HAVING サブセンテンスは、合計注文価格が 50 以上の注文のみが返されるようにデータをフィルターします。最後に、ORDER

BY 句を使用して出力を並べ替えます。

mysql データのグループ化と並べ替え、および SELECT 句の順序

SELECT 句の順序 SELECT ステートメント内の句の順序を確認してみましょう。表 13-2 は、これまで学習した句を、SELECT ステートメントで を使用するときに従う必要がある順序で示しています。

【関連する推奨事項】

mysql データのグループ化と並べ替え、および SELECT 句の順序

mysqlデータのグループ化: グループ化の作成

mysql データのグループ化と並べ替え、および SELECT 句の順序

    mysqlデータのグループ化: フィルタグループ化

以上がmysql データのグループ化と並べ替え、および SELECT 句の順序の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。