Задавайте вопросы, мы ответим
Вы не зашли.
Всем здравия!
Помогите, пожалуйста, не могу сообразить, как при группировке по дате выбрать максимальное значение второго поля?
Таблица:
id | date | number
1 | 2016-10-21 | 1
2 | 2016-10-21 | 2
3 | 2016-10-21 | 4
4 | 2016-10-22 | 1
5 | 2016-10-22 | 8
6 | 2016-10-22 | 2
Желаемый результат:
3 | 2016-10-21 | 4
5 | 2016-10-22 | 8
Заранее спасибо.
Неактивен
есть как минимум 5 способов
http://sqlinfo.ru/articles/info/18.html
Неактивен
На сколько я понимаю, там предлагается дату (timestamp) взять как за уникальное поле, а у меня даты одинаковые, и по ним нужно сгруппировать. Видимо, я чего-то недопонимаю (
Неактивен
в статье группировка идет по пользователю для которого выбирается максимальная дата
у вас группировка по дате для которой максимальный number
в примерах из статьи замените user_id на date, а time на number
Неактивен
Vasya, получилось, спасибо!
Однако, к текущему моменту задача усложнилась.
Необходимо в рамках текущей даты выбрать максимальный number для каждого user_id.
Таблица:
id | date | number | user_id
1 | 2016-10-21 | 1 | 1
2 | 2016-10-21 | 2 | 1
3 | 2016-10-21 | 4 | 2
4 | 2016-10-21 | 1 | 2
5 | 2016-10-22 | 8 | 1
6 | 2016-10-22 | 2 | 1
7 | 2016-10-22 | 1 | 2
8 | 2016-10-22 | 2 | 2
9 | 2016-10-22 | 4 | 2
Желаемый результат:
2 | 2016-10-21 | 2 | 1
3 | 2016-10-21 | 4 | 2
5 | 2016-10-22 | 8 | 1
9 | 2016-10-22 | 4 | 2
Чё-то никак не могу продолжить мысль, как это сделать (
Неактивен
группировка по дате и пользователю
Неактивен
vasya,
не понимаю
Неактивен
Неактивен
deadka, ну тогда у нас не будет id чтобы обращаться к этим строкам в дальнейшем
p.s. а, нет, можно, надо было просто ONLY_FULL_GROUP_BY отключить и можно добавить к выборке ещё поля.
p.p.s.
хотя, чёто странное творится
SELECT max(number),`date`,user_id,`id` FROM t GROUP BY `date`,user_id;
выдаёт какие-то неправильные айдишники
Отредактированно inmerdorm (08.07.2016 10:35:25)
Неактивен
так и должно быть
http://sqlinfo.ru/articles/info/18.html
Неактивен