0
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の個人的備忘録2

Posted at

##DISTINCT
検索結果から重複するデータを除くことができる。

-# purchasesテーブルからnameが重複するデータを除いたデータの表示。
SELECT DISTINCT(name)
FROM purchases;

##四則演算
SQLでは四則演算が可能。

-# purchasesテーブルから「name」、「price」、「price * 1.08」のデータの取得。
SELECT name, price, price * 1.08
FROM purchases;

##SUM関数
数値の合計を計算する場合に使用。

-# purchasesテーブルのpriceの合計値のデータを取得する。
SELECT SUM(price)
FROM purchases;

##AVG関数
数値の平均を計算する場合に使用。

-# purchasesテーブルのpriceの平均値のデータを取得する。
SELECT AVG(price)
FROM purchases;

##COUNT関数
指定したカラムのデータの合計数を計算する。NULLは計算されない。COUNT(*)ではNULLも含めて計算する。

-# purchasesテーブルのNULLを含めないnameデータの数の取得。
SELECT COUNT(name)
FROM purchases

-# purchasesテーブルのNULLを含めたnameデータの数の取得。
SELECT COUNT(*)
FROM purchases;

##MAX・MIN関数
MAXを使うと最大のデータを、MINを使うと最小のデータを取得する。

-# purchasesテーブルのpriceの最大値のデータを取得。
SELECT MAX(price)
FROM purchases;

-# purchasesテーブルのpriceの最小値のデータを取得。
SELECT MIN(price)
FROM purchases;

##GROUP BY
データのグループ化をすることができる。

-# purchasesテーブルのpurchased_atごとのpriceの合計のデータを取得する。
SELECT SUM(price), purchased_at
FROM purchases
GROUP BY purchased_at
;

##WHEREとGROUP BY
併用する場合はWHEREを先に記入する。

-# purchasesテーブルのcharacter_nameが犬であるデータをpurchased_atでグループ化し、priceの合計、purchased_atのデータを取得。
SELECT SUM(price), purchased_at
FROM purchases
WHERE character_name = “犬”
GROUP BY purchased_at
;

##HAVING
GROUP BYでグループ化したデータを更に絞り込むときに使用。WHEREはグループ化される前のテーブル全体を検索対象にし、HAVINGはGROUP BYによってグループ化されたデータを検索対象とする。

-# purchasesテーブルをpurchased_atでグループ化し、priceの合計が2000以上のデータを取得。
SELECT SUM(price), purchased_at
FROM purchases
GROUP BY purchased_at
HAVING SUM(price) > 2000
;
0
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
0
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?