Используя MYSQL, выберите из суммы всех сообщений, сделанных в данную неделю года с неделей, начинающейся в воскресенье - PullRequest
1 голос
/ 03 апреля 2019

Я пытаюсь вывести таблицу данных из MYSQL, которая отображает все сообщения, сделанные на сайте Wordpress, за неделю по текущему году.

Я бы хотел, чтобы в моем запросе учитывались недели, начиная с первого воскресенья года и каждую последующую неделю, начинающуюся в следующее воскресенье.

Мне удалось составить функциональный запрос, но я новичок в MYSQL и не уверен в синтаксисе и способах его изменения.

Мне известно, что YEARWEEK () позволяет выбрать режим, который будет определять день начала недели, т. Е. SELECT YEARWEEK ('2019-11-23', 0) AS 'Режим 0';

Это звучит как то, что я хочу использовать, но я не уверен, как реализовать это, учитывая мой текущий код (или если у меня уже есть).

SUM(if ( (WEEKOFYEAR(p.post_date) =  1), 1, 0)) as Wk1, 
SUM(if ( (WEEKOFYEAR(p.post_date) =  2), 1, 0)) as Wk2,
SUM(if ( (WEEKOFYEAR(p.post_date) =  3), 1, 0)) as Wk3,
(this repeats for each week)

Еженедельные итоги, сгенерированные этим запросом, незначительно отличаются от автономного отслеживания тех же данных. Я подозреваю, что это как-то связано с тем, как рассчитывается начало недели.

1 Ответ

0 голосов
/ 04 апреля 2019

Я мог бы найти способ убедиться, что отсчет недели начинается с воскресенья. Вы можете попробовать использовать WEEK(date,mode). Например:

SUM(if ( (WEEK(p.post_date,0) =  1), 1, 0)) as Wk1, 
SUM(if ( (WEEK(p.post_date,0) =  2), 1, 0)) as Wk2,
SUM(if ( (WEEK(p.post_date,0) =  3), 1, 0)) as Wk3,

Я проверил это с несколькими датами, начиная с '2019-01-01', и он действительно считает неделю, начиная с первого воскресенья этого года. Таким образом, если post_date находится между '2019-01-01' и '2019-01-05' в этом году, он будет идентифицирован как неделя 0 и начнет идентифицировать только неделю 1 с '2019-01-06' и далее (т.е. первое воскресенье этого года). Более подробное описание функции WEEK(). Ссылка на эту ссылку Функция MySQL 'WEEK ()'

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...