Помогите составить запрос SQL

12
W1
На сайте с 22.01.2021
Offline
306
#11
Aisamiery #:

А не кажется что задача "за последние 7 дней" немного отличается от задачи "за определенные даты/дату"? =)) 1 декабря это уже определенная дата

Так ТС и написал " на каждую дату", а не "на текущую дату".

То есть
среднее за неделю на 1 декабря
среднее за неделю на 2 декабря
среднее за неделю на 3 декабря
...
среднее за неделю на 12 декабря

Мой форум - https://webinfo.guru –Там я всегда на связи
Aisamiery
На сайте с 12.04.2015
Offline
319
#12
webinfo #:

Так ТС и написал " на каждую дату", а не "на текущую дату".

Какой то странный спор у нас =)) так на каждую дату надо выводить среднее, то есть у вас есть 100 записей за сегодня и 100 за вчера, вы хотите на каждую дату вывести среднее значение, то есть у вас будет 2 строки в выборке, за сегодня и за вчера. Там же условие важное, за последние 7 дней, 1 декабря не входит в этот интервал даже если попытаться натянуть сову на глобус))

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
W1
На сайте с 22.01.2021
Offline
306
#13
Aisamiery #:
у вас есть 100 записей за сегодня и 100 за вчера, вы хотите на каждую дату вывести среднее значение, то есть у вас будет 2 строки в выборке, за сегодня и за вчера.

А почему не за позавчера? А почему не за месяц? Откуда Вы взяли условие " за сегодня и за вчера"?

Aisamiery
На сайте с 12.04.2015
Offline
319
#14
webinfo #:
А почему не за позавчера? А почему не за месяц? Откуда Вы взяли условие " за сегодня и за вчера"?

Потому что такое условие у ТС, за последние семь дней, последние 7 дней это, как правило по дефолту, сегодня и 6 предыдущих, если не указано более четкого условия, например за последние 7 дней от такой то даты и так далее.

W1
На сайте с 22.01.2021
Offline
306
#15

Да и select date(create_date) as d - не пойдёт здесь такое, нужна же именно дата, а тут дата+время.

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

W1
На сайте с 22.01.2021
Offline
306
#16
Aisamiery #:

Потому что такое условие у ТС, за последние семь дней, последние 7 дней это, как правило по дефолту, сегодня и 6 предыдущих, если не указано более четкого условия, например за последние 7 дней от такой то даты и так далее.

Вы меня не поняли. На дату 1 декабря не прокатит Ваше date(now()). Это как минимум. Но там и кроме этого будет затык на затыке, насколько я беглым взглядом могу разглядеть.

Aisamiery
На сайте с 12.04.2015
Offline
319
#17
webinfo #:
Да и select date(create_date) as d - не пойдёт здесь такое, нужна же именно дата, а тут дата+время.

Это тут как раз для этого и сделано, чтоб отсечь время


webinfo #:
Вы меня не поняли. На дату 1 декабря не прокатит Ваше date(now()). Это как минимум. Но там и кроме этого будет затык на затыке, насколько я беглым взглядом могу разглядеть.

Затык то в чем? Понять не могу, date(now()) даст текущую дату без времени... При чем тут 1 декабря, попробуйте составить текстом условие где будет понятно, что надо выбрать на 1 декабря и чтоб там фигурировала фраза "за последние 7 дней" и сравните с тем что в стартопике.

PS. Когда меня просят выводить например сумму заказов за последние 7 дней, для меня это значит, что человек при обращении хочет получить данные именно за последние 7 дней от текущего момента, а не чтоб я сам придумал с какой даты мне ему данные за 7 дней показать

W1
На сайте с 22.01.2021
Offline
306
#18
Aisamiery #:

Это тут как раз для этого и сделано, чтоб отсечь время

Миль пардон, это меня переклинило. Скопипастил, не обратив внимание на функцию.

Aisamiery #:

Понять не могу, date(now()) даст текущую дату без времени... При чем тут 1 декабря, попробуйте составить текстом условие где будет понятно, что надо выбрать на 1 декабря и чтоб там фигурировала фраза "за последние 7 дней" и сравните с тем что в стартопике.

Именно текущую. А надо на каждую, как написано в стартпосте. То есть на 1 декабря не пойдёт.

Aisamiery #:

Когда меня просят выводить например сумму заказов за последние 7 дней, для меня это значит, что человек при обращении хочет получить данные именно за последние 7 дней от текущего момента, а не чтоб я сам придумал с какой даты мне ему данные за 7 дней показать

Я написал выше, что Вы неправильно поняли фразу  "за последние 7 дней". Так как написано "на каждую дату", то и эти "последние 7 дней" отсчитываются от той самой "каждой даты".

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий