SQL その1 SELECT ,ODER BY, EXCEPT, DISTNCTなどの基本

SQL  その1 SELECT ,ODER BY, EXCEPT, DISTNCTなどの基本

木田さん講座を学んだφ(..)メモメモ。
中野さんの講座をその前に学んでてほんと良かったと思ってる。
両方の良いとこまとめたウェブ解析士向け講座できたらいいんだけどなー

SELECT id DISTINCT 重複をカウントしないカウントと組み合わせるときはSELECT COUNT (DISTINCT id)ね。
EXCEPT ( id,id2)
ORDER BY ASC DESC
LIMIT
WHERE
BETWEEN data AND data NOT BETWEEN data AND data
IN (data,data,data) NOT IN (data,data,data)
なお、
IN (データ列) AND 条件したい列A = 条件 AND 条件したい列B = 条件
なんて書き方もあり。IN の中にANDとかはなしのようだ


文字列の場合は
WHERE data=’文字’ 
含む場合は data like ‘%文字%’ もしくは’_文字_’ NOT LIKEもある
違いは%は文字数何文字でも_は1文字
前方一致は%文字 後方一致文字%
日付は’XXXX-XX-XX’で表記
BOOOLEAN型では is true is falseがつかえる
AS 別名ただしWHERE文では使えない
COUNT ただし、データがNULLがあるとカウントされない
SELECT FROM WHERE GROUP BY ORDER BY LIMITの順番でかく
ORDER BYはSELECTに含めていないと使えない

以下4/25 追記

GROUP BY のつかいかた

大分進んだのに、未だ躓くGROUP BY。
GROUP BYで集計したいカラムを指定する。
その前に書くSELECTはGROUP BYで集計とかしたい値を入れる。
COUNTとかSUMとか。
SELECT
 COUNTとか 集計したい列(メトリクスだね)
FROM テーブル名
GROUP BY 集計したい列(ディメンションだね)

となる。

CASEの使い方

CASEは値の名前を変えるとき使う。
genderが男性、女性、不明を1,2,nullとしてるときは
CASE
 gender
 WHEN 1=’男性’
 WHEN 2=’女性’
 ELSE ’不明’
END AS 別名
とかく。

こんな書き方もできる
SELECT
CASE
 WHEN sales_amount > 30000 THEN 3
 WHEN sales_amount > 20000 THEN 2
 WHEN sales_amount > 10000 THEN 1
 ELSE 0
END AS grade