MySQL Warning 1052 Column ‘url’ in group statement is ambiguous
Наткнулся на занятную ошибку в MySQL.
Делаем следующий запрос: select sum(size) as size,trim(leading "http://" from substring_index(url,'/',3)) as url from table_name where to_days(date)>=to_days("20070315") and to_days(date)<=to_days("20070331") and user='user' group by url order by size desc;
В системе учета трафика над которой я работаю таким запросов можно увидеть сайты посещенные пользователем за определенный период времени с группировкой по адресу и сортировкой по суммарному объему данных полученных с каждого ресурса.
Получаем ответ без группировки по урлам и с примерно вот таким окончанием: 113 rows in set, 1 warning (21.28 sec)
Рассматриваем проблемму более детально:
mysql> show warnings;
+---------+------+----------------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------------+
| Warning | 1052 | Column 'url' in group statement is ambiguous |
+---------+------+----------------------------------------------+
Причем пару недель назад все работало как часы.
Решение нашел модифицировав запрос таким образом: select sum(size) as size,trim(leading "http://" from substring_index(url,'/',3)) as url_col from table_name where to_days(date)>=to_days("20070315") and to_days(date)<=to_days("20070331") and user='user' group by url_col order by size desc;
Теперь копаюсь в логах и ищу причину начала такого поведения... Если раскопаю, напишу...
28.03.2007 (18:20)
Фишка в том, что у тебя group видит 2 поля url. Одно, которое изначально есть в таблице, а другое, которое ты создаешь командой as. При выводе ты увидишь только последнее, а group увидит оба. Вот он и ругается ).
Не представлю как оно раньше-то работало ).
29.03.2007 (9:26)
Интересно что раньше работало. И «sum(size) as size» всегда отрабатывал нормально. То есть «as url» был более приоритетным и перекрывал существующий столбец url для group. Я не могу понять в какой момент начались косяки, если версия не менялась.
Но в принципе все к лучшему, так все равно более правильно. 🙂
15.08.2007 (19:51)
У Вас очень интересный сайт! Мне очень понравилось!
19.09.2007 (19:10)
see it’s very define,your one of a kin. Ulf Raharjo.
10.11.2011 (21:03)
HI