HREF.KZ

Блог о WEB-разработке и не только…

Как подсчитать количество записей по месяцам в MySQL?

Просмотров: 200

Большое количество записей иногда бывает нужно сегментировать по определённому периоду времени. В классическом случае, когда нам нужно подсчитать записи во временном промежутке, мы подсчитываем записи по годам и месяцам.
И тут встаёт вопрос — как это сделать? На самом деле существует разные способы подсчёта записей. Например, самый распространённый из них – мы выполняем подсчёт по месяцам в SQL используя команду GROUP BY c функцией EXTRACT().

SELECT
	EXTRACT(YEAR FROM created_at) AS Year,
	EXTRACT(MONTH FROM created_at) AS Month,
	COUNT(*) AS Total
FROM
	posts
WHERE
	EXTRACT(YEAR FROM created_at) = 2024
GROUP BY
	Year, Month
ORDER BY
	Month;

В этом примере опираясь на колонку created_at таблицы posts мы делаем выборку записей за 2024 год. В результате мы получим количество записей по месяцам за который нашлись записи. Стоит обратить внимание, что поддержка функции EXTRACT() может быть доступна не на всех серверах БД, и это может так же сказаться на работе этого запроса.

Способ второй – Использование функции YEAR() и MONTH()

Если вы всё-таки решили не использовать функцию EXTRACT() для этих целей, есть альтернативный способ – использовать вместо этого функции YEAR() и MONTH().

SELECT
	YEAR(created_at) AS Year,
	MONTH(created_at) AS Month,
	COUNT(*) AS Total
FROM
	posts
WHERE
	YEAR(created_at) = 2024
GROUP BY
	Year, Month
ORDER BY
	Month;

Этот способ отработает ровно также, как и пример выше. В результате получим такую же таблицу с количеством записей, разбитую по месяцам заданного года.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *