1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SQL 超初心者向け スッキリわかるSQL 4章(検索結果の加工)

Last updated at Posted at 2021-07-25

はじめに

さて今回もやってきます!スッキリわかるSQL3章です!
本記事もこの家計簿テーブルを題材としています。
スクリーンショット 2021-07-22 18.55.55.png

検索結果の加工

実はSELECT文だけに可能な修飾があります。
抽出した検索文を加工(並び替えや重複削除など)できます。

検索結果を加工する主なキーワード

比較演算子 意味
DISTINCT 検索結果から重複行を除外する
ORDERBY 検索結果の順序を並び替える
LIMIT 検索結果から件数を限定して取得する
UNION 検索結果にほかの検索結果を足し合わせる
EXCEPT 検索結果からほかの検索結果を差し引く
INTERSECT 検索結果とほかの検索結果で重複する部分を取得する

いっぱいありますね! さくっと書き方説明します。

DISTINCT -重複行を除外する

SELECT DISTINCT 入金額 
  FROM 家計簿

これで抽出した結果は、重複されません!

ORDERBY -検索結果を並び替える

ASCで昇順,DESCで降順の設定ができる。
ただし、デフォルトはASC(昇順)なので、ASCは書かなくてもいいです!

SELECT * 
  FROM 家計簿
ORDER BY 出金額

家計簿テーブルの出金額が低い順に並び変えられて出力されます。

SELECT * 
  FROM 家計簿
ORDER BY 出金額 DESC  ←DESCを追加

家計簿テーブルの出金額が高い順に並び変えられて出力されます。

複数の列で並び替える

たとえば入金額の降順で並び替える。入金額が等しい行については
さらに出金額の降順に並び替えるという複数の列の並び替えができます

SELECT * 
  FROM 家計簿
ORDER BY 入金額 DESC, 出金額 DESC  ←複数の列

列番号を指定した並び替え

ORDER BYでは、並び替えの基準とする列を列名ではなく列番号で指定ることも可能。

列番号とは、選択例リストにおける列の順番のことで、SELECT命令に記述した順に1から数えます。

SELECT * 
  FROM 家計簿
ORDER BY 4 DESC, 5 DESC

(ORDER BY 入金額 DESC, 出金額 DESC )この文と同じです。

LIMIT -先頭から数行だけ取得する

LIMIT 取得行数 (OFFSET 先頭から除外する行数)

実際にやってみます。
出金額の高い順に3件取得する

SELECT 費目, 出金額 
FROM 家計簿
ORDER BY 出金額 DESC LIMIT 3

3番目に高い出金額だけを取得する

SELECT 費目, 出金額 
FROM 家計簿
ORDER BY 出金額 DESC LIMIT 1 OFFSET 2

ここからは 2つのテーブルを扱う時に使う集合演算子の紹介

データ数が多くなって、テーブル2つに分ける際に、SELECT文を2つのテーブルにあてるのは面倒なので
一気にやっちゃおう!ができるもの

※集合演算子は、選択列リストと列数のそれぞれのデータ型が一致していないといけない。

UNION -2つの結果を足し合わせたもの

家計簿テーブルと家計簿アーカイブテーブルが2つあった時。

SELECT 費目,入金額,出金額 FROM 家計簿
UNION
SELECT 費目,入金額,出金額 FROM 家計簿アーカイブ
ORDER BY 2,3,1

EXCEPT(エクセプト) -最初の検索結果から次の検索結果と重複するものを取り除いたモノ

SELECT 費目 FROM 家計簿
EXCEPT
SELECT 費目 FROM 家計簿アーカイブ

INTERSECT -2つの検索結果で重複するもの(共通する行を集める)

SELECT 費目 FROM 家計簿
INTERSECT
SELECT 費目 FROM 家計簿アーカイブ

まとめ

・検索結果を加工し、取得データを色々加工できる。
・集合演算子を使って、2つのテーブルから簡単にデータを取得できる。

参考記事

  • スッキリわかるSQL入門ドリル
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?