/ posted by yamayoko
非エンジニア必見のSQLコピペシート
前回の「SQL文を覚えて最強のマーケターになろう」記事をうけてSQLを実際に使ってもらう際に、
様々な集計方法を行ううえでコピペして使えるSQL文のサンプルをまとめて紹介します。
SQL文を覚えて最強のマーケターになろう
yamayoko.com/%E3%83%95%E3%82%A1%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3ec/2823.html
テーブル名やカラム名は適当なものにしているので使用されているデータベースに合わせて改造して使用してください。
平均を計算する”AVG”
SELECT AVG(click) AS HEIKIN
FROM click_data
WHERE created_at between “2014-08-01” and “2015-01-31”
;
FROM click_data
WHERE created_at between “2014-08-01” and “2015-01-31”
;
合計を計算する”SUM”
SELECT SUM(pv) AS GOUKEI
FROM item_pv
WHERE brand=’thefashion’
AND stock=1
AND sale=1
;
FROM item_pv
WHERE brand=’thefashion’
AND stock=1
AND sale=1
;
◯◯順に並べる”ORDER BY ◯◯ DESC(ASC)”
SELECT product_name,popular_count
FROM item_data
WHERE created_at between “2014-08-01” and “2015-01-31”
ORDER BY popular_count DESC
;
FROM item_data
WHERE created_at between “2014-08-01” and “2015-01-31”
ORDER BY popular_count DESC
;
◯件だけ並べる”LIMIT ◯”
SELECT stock,url,created_at,update_time
FROM items
WHERE stock=1
AND updated_at > ‘2015-08-25’
LIMIT 20
;
FROM items
WHERE stock=1
AND updated_at > ‘2015-08-25’
LIMIT 20
;
◯か△か×を含むものを抽出する”IN(◯,△,×)”
SELECT *
From items
where sku_id IN (AW11111,AW22222,AW33333)
;
From items
where sku_id IN (AW11111,AW22222,AW33333)
;
データをグルーピングして集計する”GROUP BY ◯”
(グルーピング=特定の列の値が等しい行ごとに表をグループ化する)
SELECT SUM(stock) AS ALLzaiko,product_name
FROM items
WHERE created_at between “2014-08-01” and “2015-01-31”
AND product_name NOT LIKE ‘%2015SS%’
AND category != 10
GROUP BY stock
;
FROM items
WHERE created_at between “2014-08-01” and “2015-01-31”
AND product_name NOT LIKE ‘%2015SS%’
AND category != 10
GROUP BY stock
;
重複を除外して抽出する”DISTINCT”
SELECT count(DISTINCT order_id) AS ALLorder
FROM orders
WHERE created_at between ‘2015-08-01’ and ‘2015-08-31′
AND device=’pc’
;
FROM orders
WHERE created_at between ‘2015-08-01’ and ‘2015-08-31′
AND device=’pc’
;
string型をINT型に変換して計算する”INTEGER”
(環境によっては使用不可なので注意)
SELECT sku_id,category_id,INTEGER(popular_count) as popular
FROM item
WHERE create_time > ‘2015-01-01’
ORDER BY popular desc
LIMIT 100
;
FROM item
WHERE create_time > ‘2015-01-01’
ORDER BY popular desc
LIMIT 100
;
正規表現マッチしたものだけ抜き出す”REGEXP_MATCH”
(環境によっては使用不可なので注意)
yamayoko.com/?p=[数字文字列] のURLだけ抽出
SELECT url
FROM yamayoko_pv
AND REGEXP_MATCH(original_url, r’http:\/\/yamayoko\.com\/\?p\=(\d+)’)
;
FROM yamayoko_pv
AND REGEXP_MATCH(original_url, r’http:\/\/yamayoko\.com\/\?p\=(\d+)’)
;
以上、とりあえずよく使いそうなものだけまとめました。お役に立てば幸いです。