Групповые дни до недель в sql - PullRequest
0 голосов
/ 24 апреля 2018

В моей базе данных у меня есть 3 столбца, один для дня, второй для месяца и третий для года, это выглядит примерно так:

 Day |   Month | Year 
 2         1      2018
 17        9      2017

Я хочу сгруппировать дни и недели в sqlВсе примеры, которые я видел, где в формате "2018-5-2" в одном столбце.Как я могу сделать это в sql?

Ответы [ 2 ]

0 голосов
/ 24 апреля 2018

Примерно так должно работать:

SELECT
  WEEK(STR_TO_DATE(CONCAT(Day, '/', Month, '/', Year), '%dd/%mm/%YYYY')) AS Weeknumber
FROM YOURTABLE
GROUP BY WEEK(STR_TO_DATE(CONCAT(Day, '/', Month, '/', Year), '%dd/%mm/%YYYY'))

Он объединяет ваши значения даты в DATE, а затем использует функцию WEEK для извлечения номера недели из этой даты. Если вы также хотите выбрать саму дату (STR_TO_DATE(CONCAT(Day, '/', Month, '/', Year), '%dd/%mm/%YYYY')), то группировка по номеру недели не будет иметь особого смысла, но вы не упомянули об этом в своем посте.

0 голосов
/ 24 апреля 2018

Вы можете сделать что-то вроде этого, чтобы извлечь год и неделю:

select yearweek(date(concat_ws('-', year, month, day)))

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

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