SQLで内容確認のため1件だけ取り出したい時ありませんか。
また、ある項目でグルーピングして、その代表として1件を取り出したいことはありませんか。
この記事では、3つの方法をお教えします。場合に応じて使い分けて見てください。
SQLで1件だけ①単純に検索結果を1件にする
これから分析するにあたり、カラム名やカラム内にどんな値が入っているか知りたい場合は「sample」句が使えます。(DBによる)
書式は以下の通りです。
SELECT * FROM テーブル名 sample 1 ;
つまりSLECT文の最後に「sample 1」とつけるだけです。
これで検索対象のデータのサンプルを1件取得する事ができます。
当然「sample 10」とすると10件の行を取得する事ができます。
データの傾向を見るためには100件ぐらい取得するとよいでしょう。
「sample」の代わりに「TOP」句が使えるDBMSもあります。
SELECT TOP 10 * FROM テーブル名 ;
SQLで1件だけ②「ROWNUM」使う
「ROWNUM」はSQLで使用できる予約語で、抽出された行に振られる番号です。
(DBMSによる)
例えば次のような検索では
SELECT *
FROM
(SELECT カラム名1,カラム名2 …
FROM テーブル名
WHERE カラム1 >= 100 条件
ORDER BY カラム1)
WHERE ROWNUM <= 1
カラム1の値が100以上である行を抽出する副問い合わせで
結果をカラム1で順番に並べます。
そして順番に並べたことで振られるROWNUMを使って1行抽出しています。
この方法では特定のカラムの値に条件を与えたり、ORDER BYすることで取得する事で、取得行をある程度選べます。
SQLで1件だけ③「TOP RANK() PARTITION」で1件取得する
「RANK() PARTITION」でGROUP BYのようなくくりを作ってその中での「TOP 1」を表示させます。
select TOP 1 カラム1,カラム2 ,
rank() over(partition by カラム1 order by カラム2 desc) 順位
from テーブル名
order by カラム1;
まとめ
SQLで1件だけ表示させる方法をいくつか紹介しました。
- 「SAMPLE」や「TOP」を使う方法
- 「ROWNUM」を使う方法
- 「RANK() PARTITION」を使う方法
それぞれ、特徴があり、使えるDBMSも異なるのでいろいろ試して確認しておきましょう。
次に読む
- SQL学習ロードマップ(初心者→実務)【2026年版】
- ORDER BYとLIMITの使い方|SQLで並び替えと上位N件取得をする方法
- EXISTS入門:存在チェックの基本と落とし穴(IN・NULL・重複)
- ROW_NUMBERで「グループごとに最新1件」を安定して取る(同率・タイブレークまで)
- NULLの3値論理でWHEREが外れる理由(= / <> が通じないケース)
- GROUP BYでエラーになる理由と直し方(「何を1行にしたいか」から逆算)
- JOINで行が増える理由と重複チェック(件数確認・1対多の見分け方)
- 実行計画入門:遅いSQLを直す前に「何が重いか」を見る
- インデックス入門:どの条件・どの並び替えに効くか(最小限の考え方)

