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?

Progate(SQL集計関数)学びまとめ

Posted at

DISTINCT

ex.sql
SELECT DISTINCT(カラム名) FROM テーブル名

→SELECTで取得するカラムに使用することで、重複を省いたデータを取得できる

Ex.sql
SELECT distinct(name)
FROM purchases;

→purhaseテーブルのnameカラム(重複なし)が取得される

四則演算

ex.sql
SELECT カラム名 演算子 FROM テーブル名

例:元のテーブルは以下

shhisokuennzann.png

消費税込みの値段をまとめたカラムを用意する↓

Ex.sql
SELECT name, price,price*1.08
FROM purchases;

結果

result.png

集計関数

syuukei.png

例:SUM

ex.sql
SELET SUM(カラム名) FROM テーブル

→選択したカラムの合計が求まる
例:

ex.sql
SELECT SUM(price)
FROM purchases;

結果
sum_result.png

また、WHERE句とも併用できる

ex.sql
SELECT SUM(price)
FROM purchases
WHERE character_name = "にんじゃわんこ"
;

結果
sum__where_result.png

→挙動はAVG(平均値を求める関数)と同じ

例2:COUNT

ex.sql
SELET COUNT(カラム名) FROM テーブル

例:

ex.sql
SELECT COUNT(name)
FROM purchases;

結果:

count.png

注意!この場合、nullのレコードはカウントされない!
→nullのレコードもカウントしたい場合「*」を使う
例:

ex.sql
SELECT COUNT(*)
FROM purchases;

結果:
count_ast.png

→* を使った場合、特定のカラムのデータの数ではなく、テーブル全体のレコードの数を計算
また、COUNTもwhereと併用できる

例:

ex.sql
SELECT COUNT(*)
FROM purchases
WHERE character_name = "にんじゃわんこ"
;

結果:
countwhere.png

例3:MAX,MIN

ex.sql
SELECT MAX(カラム名) FROM テーブル名

→特定のカラムの最大値データを取得
例:

wx.sql
SELECT MAX(price)
FROM purchases;

結果:

max.png

where句との併用も可
例:

ex.sql
SELECT MAX(price)
FROM purchases
WHERE character_name = "にんじゃわんこ"
;

結果:
max_where.png

GROUP BY

GROUP BYを用いる場合、SELECTで使えるのは、GROUP BYに指定しているカラム名と、集計関数のみ

groupby.png

複数のgroup byだと

ex.sql
SELECT sum(price),purchased_at,character_name 
FROM purchases 
WHERE category='食費' 
GROUP BY purchased_at,character_name ;

whereとも併用できる

ex.sql
SELECT character_name, SUM(price)
FROM purchases
WHERE category = 'おもちゃ'
GROUP BY character_name;

HAVING

  • GROUP BYを更に条件で絞り込むのに使う
  • 条件で絞り込むというとwhereっぽいが、コマンド実行順は以下のようになるのでGROUP BYのあとにwhereというのはできない
  • また、WHEREはグループ化される前のテーブル全体を検索対象とするのに対し、HAVINGはGROUP BYによってグループ化されたデータを検索対象とする
  • なので、条件文で使うカラムは必ずグループ化されたテーブルのカラムを使う
ex.sql
SELECT SUM(price),purchased_at
FROM purchases
GROUP BY purchased_at
HAVING SUM(price) > 2000
;
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?