mysql
mysqlのdatetime型のカラムについて、年月日でうまく集計してくれるような関数は用意されていない。 そこで、 DATE_FORMAT 関数を使いdatetime型から年や月から文字列を作り、これをつかってgroup byで集計するようにする。 SELETE DATE_FORMAT(date_col, '%…
SQLでテーブルの一部だったり集計結果を使って表を作りたい時、with構文が非常に役に立つ。 WITH tmp1 as (SELECT COUNT(*) cnt, date FROM t1 GROUP BY date), tmp2 as (SELECT COUNT(*) cnt, date FROM t2 GROUP BY date) SELECT tmp1.date, tmp1.cnt, tmp…
これまで、DB上に登録されているUNIXTIMEを日付形式の文字列に変換するときは、一旦データを取り出してからアプリ側で変換していた。 ところが、MySQLではFROM_UNIXTIMEという関数を使えばSQLだけでこの操作を完結することができる。 SELECT FROM_UNIXTIME(1…
MySQLで切り上げをしようと思う場合、ちょっと面倒なことが起こる。 というのも、MySQLには四捨五入と切り捨てのメソッドはあるが、切り上げは標準では実装されていないから。 そこで、足し算をして繰り上げたものを切り捨てて繰り上げを実現する、という手…