0
0

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クエリまとめ②

Posted at

前回に引き続き、SQLのクエリまとめをサクッとしていきます。

基本情報技術者試験の学習中にデータベースの扱い方で、SQL文が出てきて「まとめておいてよかったー」となったので、基本的なクエリについてもう少しまとめておきます。

DISTINCT

  • 検索結果から重複するデータを除くことができる
  • SELECT DISTINCT(カラム名)
productsテーブルのnameカラムの重複を除く
SELECT DISTINCT(name)
FROM products;

GROUP BY

  • データをグループ化できる
  • GROUP BY カラム名
  • SELECTで使えるのは、集計関数とカラム名のみ
priceの合計を日別でグループ化
SELECT SUM(price), producted_at
FROM products
GROUP BY producted_at;

HAVING

  • グループ化したデータを更に絞り込める
  • GROUP BY カラム名 HAVING 条件;
priceの合計を日別でグループ化して、1000円以上のもののみ
SELECT SUM(price), producted_at
FROM products
GROUP BY producted_at
HAVING SUM(price) >= 1000;

関数

関数を使うことで、集計がかんたんにできる!

SUM関数

  • 数値の合計を計算
  • SUM(カラム名)
categoryが、カレーの商品の合計金額
SELECT SUM(price)
FROM products
WHERE category = "カレー";

AVG関数

  • 数値の平均を計算
  • AVG(カラム名)
categoryが、ラーメンの商品の平均金額
SELECT AVG(price)
FROM products
WHERE category = "ラーメン";

COUNT関数

  • 指定したカラムのデータの合計数を計算
  • COUNT(カラム名)
categoryが、ラーメンの商品のデータ数
SELECT COUNT(*)
FROM products
WHERE category = "ラーメン";

MAX・MIN関数

  • 指定したカラムの最大、最小のデータを取得
  • MAX(カラム名)
  • MIN(カラム名)
priceが一番高い商品のデータ
SELECT MAX(price)
FROM products;
categoryが、ラーメンの商品の中で、1番安い商品のデータ
SELECT MIN(price)
FROM products
WHERE category = "ラーメン";

さいごに

直接SQL文を書くことはそんなにないですが、ログを見てどういうデータを取得しているかがわかるので、いい勉強になります。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?