技術向上

プログラミングの学び、気になるテクノロジーやビジネストレンドを発信

UnixTimeStampのカラムから日付ごとに集計する【MySQL】

UnixTimeStampで表現されているカラムを用いて、日付ごとに集計を行うクエリ。

SELECT DATE_FORMAT(FROM_UNIXTIME(c.confirmed_at),'%Y/%m/%d') AS confirm_date, COUNT(ci.id) AS quantity FROM carts AS o JOIN cart_items AS ci ON ci.cart_id = c.id WHERE ci.status = 0 GROUP BY confirm_date


Table

  • carts
    • date_timeをunix時間で保持
  • cart_items

の場合、次のような結果が返されます。

+-------------+---------+
| confirm_date | quantity |
+-------------+---------+
| 2019/11/16       |            3  |
| 2019/12/25      |            1   |
+-------------+---------+


Group Byに指定されたカラムの昇順で並びますが、 降順にしたい場合は、インナークエリ(パフォーマンスが悪くなります)かコードで処理します。