①DISTINCTで重複行を除外
↓
SELECT DISTINCT 登録店舗
FROM 会員登録
DISTINCTをつけることにより重複行は削除できます。
②並び替え
日付の降順(新しい順)になるように並べ替えます
SELECT * FROM 会員登録
ORDER BY 日付 DESC
昇順はASC
③複数行での並び替え
数学を降順、国語を降順で並び変える場合、以下の2パターンで並び替え可能
SELECT * FROM 成績表
ORDER BY 数学 DESC, 国語 DESC
SELECT * FROM 成績表
ORDER BU 3 DESC,4 DESC
④取得行の指定
先ほどの成績表を使用し、数学の点数の高い順に名前と数学の点数を「2件」取得してみます。SELECT 名前,数学 FROM 成績表
ORDER BY 数学 DESC
OFFSET 0 ROWS
FETCH NEXT 2 ROWS ONLY
OFFSETには除外したい行数、FETCH NEXT ? ROWS ONLYには所得したい行数を記載します。
FETCHを使い、2番目に数学の点数の高い、名前と数学の点数を表示します。
SELECT 名前,数学 FROM 成績表
ORDER BY 数学 DESC
OFFSET 1 ROWS
FETCH NEXT 1 ROWS ONLY
①〜④までのまとめ
ハンバーガーショップの注文履歴テーブルが以下のようにあります。
①注文順かつ枝番順に全ての注文データを取得します。
SELECT * FROM 注文履歴
ORDER BY 注文番号,注文枝番
②2021年4月に注文のあった商品名一覧を商品名順に取得します。
SELECT DISTINCT 商品名 FROM 注文履歴
WHERE 日付 >='2021/04/01' AND 日付 <='2021/04/30'
ORDER BY 商品名
③「ポテト」の商品を対象に注文金額の低い方から2〜4番目の注文の注文番号と枝番、金額を取得する。
SELECT 注文番号,注文枝番,注文金額 FROM 注文履歴
WHERE 分類='ポテト' ORDER BY 注文金額
OFFSET 1 ROWS
FETCH NEXT 3 ROWS ONLY