カテゴリ: PostgreSQL 更新日: 2026/03/11

PostgreSQLで並び替えと件数制限を完全理解!ORDER BYとLIMITを初心者向けにやさしく解説

PostgreSQLでORDER BYとLIMITを組み合わせる方法
PostgreSQLでORDER BYとLIMITを組み合わせる方法

先生と生徒の会話形式で理解しよう

生徒

「データベースの一覧を表示したら、順番がバラバラで見にくいんです。どうしたらいいですか?」

先生

「それは並び替えがされていない状態ですね。SQLではORDER BYという命令を使うと、きれいに順番をそろえられます。」

生徒

「たくさん表示されすぎるのも困るんですが、それも調整できますか?」

先生

「はい。LIMITを使うと、表示する件数を制限できます。ORDER BYと組み合わせると、とても見やすい一覧になりますよ。」

1. SQLとは何か?

1. SQLとは何か?
1. SQLとは何か?

SQLは、データベースという「情報を表の形で保存しておく箱」に対して命令を出すための言葉です。紙の名簿を想像してください。名前や年齢がずらっと並んだ表から、特定の人を探したり、順番を並べ替えたりしますよね。SQLは、それをパソコンにお願いするための指示書のようなものです。

2. PostgreSQLとテーブルの基本

2. PostgreSQLとテーブルの基本
2. PostgreSQLとテーブルの基本

PostgreSQLは、データベース管理システムの一つで、無料で使えて高性能なことで有名です。データは「テーブル」という表の形で保存されます。今回は、利用者の一覧が入ったusersテーブルを例に説明します。


id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 高橋次郎   | 22  | jiro@example.com
5  | 伊藤美咲   | 27  | misaki@example.com

3. ORDER BYでデータを並び替える

3. ORDER BYでデータを並び替える
3. ORDER BYでデータを並び替える

ORDER BYは、データを指定したルールで並び替える命令です。例えば年齢順に並べたい場合は、「age」という列を基準にします。昇順は小さい数字から大きい数字へ、降順はその逆です。


SELECT *
FROM users
ORDER BY age;

id | name       | age | email
---+------------+-----+-------------------
2  | 佐藤花子   | 19  | hanako@example.com
4  | 高橋次郎   | 22  | jiro@example.com
1  | 山田太郎   | 25  | taro@example.com
5  | 伊藤美咲   | 27  | misaki@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com

4. LIMITで表示件数を制限する

4. LIMITで表示件数を制限する
4. LIMITで表示件数を制限する

LIMITは、「何件まで表示するか」を決める命令です。たくさんのデータがあると、全部表示すると見づらくなります。名簿の最初の数人だけ見たいときに便利です。


SELECT *
FROM users
LIMIT 3;

id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com

5. ORDER BYとLIMITを組み合わせる理由

5. ORDER BYとLIMITを組み合わせる理由
5. ORDER BYとLIMITを組み合わせる理由

ORDER BYだけだと、並び替えはできますが件数はそのままです。LIMITだけだと、どの順番で選ばれているか分かりません。この二つを組み合わせることで、「年齢が若い人を上から3人だけ表示する」といった指示ができます。


SELECT *
FROM users
ORDER BY age
LIMIT 3;

id | name       | age | email
---+------------+-----+-------------------
2  | 佐藤花子   | 19  | hanako@example.com
4  | 高橋次郎   | 22  | jiro@example.com
1  | 山田太郎   | 25  | taro@example.com

6. 降順で並び替えて上位データを取得する

6. 降順で並び替えて上位データを取得する
6. 降順で並び替えて上位データを取得する

DESCを使うと、降順で並び替えられます。これは「大きい順」「新しい順」といった並びを作りたいときに使います。年齢が高い人を上位から表示する例を見てみましょう。


SELECT name, age
FROM users
ORDER BY age DESC
LIMIT 2;

name       | age
-----------+-----
鈴木一郎   | 30
伊藤美咲   | 27

7. OFFSETを使った位置指定の考え方

7. OFFSETを使った位置指定の考え方
7. OFFSETを使った位置指定の考え方

OFFSETは、「最初の何件を飛ばすか」を指定する命令です。本のページをめくるような感覚で考えると分かりやすいです。最初の2件を飛ばして、次の2件を見る場合はOFFSET 2とLIMIT 2を使います。


SELECT *
FROM users
ORDER BY id
LIMIT 2 OFFSET 2;

id | name       | age | email
---+------------+-----+-------------------
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 高橋次郎   | 22  | jiro@example.com

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

ORDER BYとLIMITを使うときは、必ずORDER BYを先に書き、その後にLIMITを書く必要があります。順番を間違えるとエラーになります。また、並び替えを指定しないLIMITは、結果が毎回同じ順番になるとは限らない点も注意が必要です。

カテゴリの一覧へ
新着記事
New1
MySQL
【MySQL入門】LIMITとは何か?SELECT文で取得件数を制限する方法を初心者向けに徹底解説
New2
PostgreSQL
PostgreSQLのMAX・MIN完全解説|集約関数とGROUP BYで最大値・最小値を抽出する方法
New3
MySQL
MySQLのORDER BYで文字列を並び替える方法と注意点を徹底解説|SQL初心者向け完全ガイド
New4
PostgreSQL
PostgreSQLのSUM・AVG完全解説|集約関数とGROUP BYの計算時の注意点を初心者向けにやさしく説明
人気記事
No.1
Java&Spring記事人気No1
PostgreSQL
PostgreSQLのUPDATE文の使い方(部分更新・条件更新)
No.2
Java&Spring記事人気No2
PostgreSQL
PostgreSQLスキーマ作成・削除完全ガイド!初心者でもわかるデータベース設計の基礎
No.3
Java&Spring記事人気No3
PostgreSQL
PostgreSQLでスキーマを分割するメリット
No.4
Java&Spring記事人気No4
PostgreSQL
PostgreSQLとは?初心者向けに特徴をわかりやすく解説
No.5
Java&Spring記事人気No5
PostgreSQL
PostgreSQLの主キー・外部キーを完全解説!初心者でもわかる設定方法と考え方
No.6
Java&Spring記事人気No6
PostgreSQL
PostgreSQLのORDER BYの基本(昇順・降順)
No.7
Java&Spring記事人気No7
PostgreSQL
PostgreSQLでよく使うデータ型一覧(文字列・数値・日付)
No.8
Java&Spring記事人気No8
PostgreSQL
PostgreSQLのpublicスキーマの役割と扱い方