MySQLで月毎にGROUP BYする

Dec 8, 2021 15:28 · 182 words · 1 minute read

modified は変更されたら更新されるカラム。 以下のような表現で 202107 といった文字列を作ることができる。

CONCAT(YEAR(modified), LPAD(MONTH(modified), 2, '0'))

GROUP BY YEAR(modified), MONTH(modified) でもいいが、可視化のライブラリにて使うときに1カラムの方が具合がいいので LPAD などを使って1カラムの文字列にしている。

更新されたレコードを月毎で計上

SELECT CONCAT(YEAR(modified), LPAD(MONTH(modified), 2, '0')),
  COUNT(1)
FROM t
GROUP BY CONCAT(YEAR(modified), LPAD(MONTH(modified), 2, '0'))
ORDER BY CONCAT(YEAR(modified), LPAD(MONTH(modified), 2, '0'))

参考

tweet Share