はじめに
SQLを使い始めたので、備忘録として学んだことをまとめていこうと思います。
基本
項目の取得には SELECT を用います。
SELECT 取得する項目名 FROM テーブル名 ・・・・・
これが基本構文で、・・・・・の部分に色々とオプションを追加することができるので以下にまとめます。
データの絞り込み、加工
SQL文 | 説明 |
---|---|
WHERE 条件式 | 条件式に合致するもののみ取得 |
LIMIT 数字 | 上から"数字"個だけデータを取得 |
ORDER BY 項目 | データを"項目"に関してソートする |
WHERE中の条件式には様々な演算子を用いることができ、さらにその条件式をand,orでつなぐこともできます。
(例)ENERGYが500以上のカレーのデータを3つ取得する
SELECT * FROM table1 WHERE ENERGY>=500 and NAME="カレー" LIMIT 3
を実行すると以下のようなデータが得られます。(項目名の*は全要素を表す)
DATE | NAME | ENERGY | PRICE |
---|---|---|---|
20190411 | カレー | 530 | 500 |
20190411 | カレー | 700 | 700 |
20190412 | カレー | 660 | 700 |
データのグループ化、集計
SELECT〜のところに 関数(項目名) を入れることで集計結果を表示させることもできます。
関数名 | 説明 |
---|---|
SUM(項目名) | "項目"の値の総和を出力 |
AVG(項目名) | "項目"の値の平均を出力 |
COUNT(項目名) | "項目"の値のデータ数を出力 |
また、FROM〜の後に
GROUP BY 項目名 を加えると"項目"の各々の要素ごとの集計結果が得られます。
(例)日ごとの商品別総売上を取得する
SELECT DATE,NAME,SUM(PRICE) AS SALES FROM table1 GROUP BY DATE,NAME ORDER BY DATE
を実行するとこのようなデータが得られます。
DATE | NAME | SALES |
---|---|---|
20190411 | カレー | 15000 |
20190411 | ラーメン | 18000 |
20190412 | ラーメン | 20000 |
20190412 | カレー | 12000 |
〜型変換〜
今回分析に用いたデータの数値が文字列として保存されていたので、型変換する必要がありました。
CAST(項目名 AS 型)でその項目のデータを一括型変換できます。
SELECT SUM(CAST(PRICE AS float64)) FROM table1 ・・・
これでPRICEの和を得ることができました。