複数の列とSQL ORDER BYを使用する方法
Min-jun Kim
Dev Intern · Leapcell

Key Takeaways
ORDER BY
句は、複数の列で結果をソートできます。- 列の順序と方向は、最終的な出力に影響します。
- 複数の列を使用すると、より正確なデータ編成が可能です。
データベースを扱う際、分析、レポート作成、またはユーザーへの提示のために、データを意味のある順序でソートする必要があることがよくあります。SQLには、クエリ結果をソートするためのORDER BY
句が用意されています。単一の列でソートするのは簡単ですが、複数の列でソートする必要がある場合も多くあります。この記事では、SQLで複数の列を持つORDER BY
を使用する方法、それがなぜ役立つのかを説明し、その使用例を示します。
複数の列でソートする理由
複数の列でソートすると、より整理され、解釈しやすい結果を作成するのに役立ちます。たとえば、従業員リストがあり、最初に部署、次に給与で並べ替えたい場合、ORDER BY
句で複数の列を使用すると、データが必要な方法で正確にグループ化およびソートされます。
複数の列を持つORDER BYの構文
SQLで複数の列でソートする基本的な構文は次のとおりです。
SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
column1
、column2
などは、ソートする列です。ASC
は昇順(デフォルト)を意味し、DESC
は降順を意味します。- 必要に応じて昇順と降順を組み合わせることができます。
例:2つの列でソートする
employees
という名前のテーブルがあり、department
、last_name
、およびsalary
という列があるとします。従業員を部署(アルファベット順)で並べ替え、各部署内で給与(高いものから低いものへ)で並べ替える必要があるとします。
SELECT department, last_name, salary FROM employees ORDER BY department ASC, salary DESC;
この例では:
- 結果は最初に
department
列で昇順にソートされます。 - 各部署内で、行はさらに
salary
列で降順にソートされます。
例:3つ以上の列でソートする
必要な数の列をORDER BY
句に追加できます。3つの列の例を次に示します。
SELECT department, last_name, first_name, salary FROM employees ORDER BY department, last_name, first_name;
このクエリは次のようになります。
- 最初にすべての従業員を
department
でソートします。 - 同じ部署内の従業員については、
last_name
でソートします。 - 部署内で同じ姓の従業員がいる場合は、
first_name
でソートされます。
実用的なヒント
ORDER BY
句の列の順序が重要です。SQLは最初の列でソートし、次にタイがある場合にのみ2番目の列でソートします。ASC
またはDESC
を指定しない場合、SQLはデフォルトで昇順を使用します。ORDER BY
句で列番号を使用できます(例:ORDER BY 2, 3 DESC
)が、読みやすさのために列名を使用することをお勧めします。
結論
SQLで複数の列を使用してORDER BY
句でソートすることは、クエリ結果の順序を制御する強力な方法です。1つまたは複数の列とそれぞれの方向を指定することで、ほぼすべての要件に合わせてデータの表示を調整できます。このテクニックを習得することは、SQLでの効果的なデータクエリとレポート作成に不可欠です。
FAQs
はい、各列に対して個別にASCまたはDESCを指定できます。
SQLは、ORDER BY句で指定された次の列でソートします。
いいえ、ただし、読みやすさのために推奨されます。列番号も使用できます。
Leapcellは、バックエンドプロジェクトをホストするための最適な選択肢です。
Leapcellは、Webホスティング、非同期タスク、およびRedisのための次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、またはRustで開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に対してのみ支払い—リクエストも請求もありません。
比類のないコスト効率
- アイドル料金なしの従量課金制。
- 例:$25で、平均応答時間60msで694万件のリクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI/CDパイプラインとGitOps統合。
- 実用的な洞察を得るためのリアルタイムのメトリックとロギング。
簡単なスケーラビリティと高パフォーマンス
- 高い同時実行性を容易に処理するための自動スケーリング。
- 運用オーバーヘッドはゼロ—構築に集中するだけです。
ドキュメントで詳細をご覧ください。
Xでフォローしてください:@LeapcellHQ