by shigemk2

当面は技術的なことしか書かない

今日のSQL

SUMとCASEのコンボ

自分には使いこなせないので。出来れば1SQLでどうにかしたいけど、普通にシェルで2回実行するように命令を書けばいいのではないかという悟りを得る

kontany.net

月ごと集計

こういう書き方があるのは知らなかった。

select 
date_part('year', created) as year, 
date_part('month', created) as month,
sum(price) as sum_price
from sales
group by year,month
order by year,month;

なお、

select date_part('year', '2015-05-15 00:00:00');

ってやると、2015が返ると思われる。

choice-site.com

date_part

https://www.postgresql.jp/document/7.2/user/functions-datetime.html

strpos

Oracleに似たようなのがあってINSTRとかあるけど、Postgreだとこっち。

PostgreSQL 編13 - 文字関数、連結、空白削除、置換、切出、検索、長さ、数値 - SAK Streets

postgresqlのcsv出力コマンドはawkのオプションと同じだった

knowledge.reontosanta.com

psql データベース名 -f SQLファイル名 -A -F, > CSVファイル名

桁揃えしないのが、-A、,で区切るのが-F

awkと似てるでしょ?と思った。

cat data_crlf.csv | awk -F, '{ print $1 }'
"日付"
"2014-12-14 08:04:36"
"2014-12-14 08:19:08"
"2014-12-15 22:55:59"
"2014-12-15 22:56:09"

みたいなね。なんてね。