О web-разработке
и даже немного больше...

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

Большое количество записей иногда бывает нужно сегментировать по определённому периоду времени. В классическом случае, когда нам нужно подсчитать записи во временном промежутке, мы подсчитываем записи по годам и месяцам.
И тут встаёт вопрос — как это сделать? На самом деле существует разные способы подсчёта записей. Например, самый распространённый из них – мы выполняем подсчёт по месяцам в 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;

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

Опубликован: 09.10.2024 г.

См. также:

Работа с базой данных в WordPress
SQL-запросы для смены домена в WordPress
Как изменить тип таблиц в MySQL?
Изменение кодировки таблиц в базе MySQL
Фильтрация по полю DateTime в MySQL
Меняем пароль root в MySQL 5.7
Исправление ошибок в базе MySQL
Восстановление пароля root в MySQL

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

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

Комментарии
  • Загрузка...
Друзья сайта