|
помогите с запросом с группировкой по датам
|
|||
---|---|---|---|
#18+
есть запрос Код: sql 1.
но он не работает такой запрос тоже не работает Код: sql 1.
зато такой запрос работает Код: sql 1.
почему? особенно не понятно с запросом 2 вроде группировку понимаю, но тут совсем не понятно кто объяснит? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 07:30 |
|
помогите с запросом с группировкой по датам
|
|||
---|---|---|---|
#18+
tadeyiloda, Первый и не должен работать. А от второго покажите сообщение об ошибке. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 07:53 |
|
помогите с запросом с группировкой по датам
|
|||
---|---|---|---|
#18+
ошибка автор#1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'order_system.order.imported_date' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 08:12 |
|
помогите с запросом с группировкой по датам
|
|||
---|---|---|---|
#18+
sql_mode= only_full_group_by Т.е. любое поле (в т.ч. выражение) выходного набора обязано быть либо в списке выражений группировки, либо быть аргументом агрегатной функции. Причём поле/выражение в данном случае понятие скорее литеральное (с точностью до формализованного выражения без учёта детерминированных функций), а не смысловое - если в списке вывода есть выражение field1+field2, а в списке группировки field2+field1, то это РАЗНЫЕ литералы, а вот SIN(field) в списке вывода и ABS(field) в выражении группировки - допустимы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 09:53 |
|
помогите с запросом с группировкой по датам
|
|||
---|---|---|---|
#18+
Кстати, в третьем запросе можно использовать алиас выходного набора вместо его выражения: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 09:54 |
|
помогите с запросом с группировкой по датам
|
|||
---|---|---|---|
#18+
Вернее, алиас можно использовать в любом из трёх запросов. Просто первые два лишь формально останутся теми же. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 09:55 |
|
помогите с запросом с группировкой по датам
|
|||
---|---|---|---|
#18+
Akinasql_mode= only_full_group_by Т.е. любое поле (в т.ч. выражение) выходного набора обязано быть либо в списке выражений группировки, либо быть аргументом агрегатной функции. Причём поле/выражение в данном случае понятие скорее литеральное (с точностью до формализованного выражения без учёта детерминированных функций), а не смысловое - если в списке вывода есть выражение field1+field2, а в списке группировки field2+field1, то это РАЗНЫЕ литералы, а вот SIN(field) в списке вывода и ABS(field) в выражении группировки - допустимы. получается нужно отключать sql_mode= only_full_group_by чтобы заработал запрос с concat? странное поведение, это баг? версия 5.7 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 10:07 |
|
помогите с запросом с группировкой по датам
|
|||
---|---|---|---|
#18+
tadeyilodaполучается нужно отключать sql_mode= only_full_group_by чтобы заработал запрос с concat?Нет. Наоборот - надо писать запросы так, чтобы они соответствовали стандарту, а не локальному расширению для ленивых пользователей. Т.е. третий запрос - это правильный вариант, соответствующий стандарту, и именно таким и должен быть запрос. А отключение only_full_group_by для того, чтобы получить возможность говнокодить - это явно не best practice... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 12:38 |
|
|
start [/forum/topic.php?fid=47&msg=39833683&tid=1829064]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 169ms |
0 / 0 |