Этот вопрос задавался и отвечал много раз раньше, но мой случай немного отличается.SQL ORDER BY до GROUP BY
Скажем, у меня есть эти данные:
------------------------------
| id | date |
------------------------------
| 1 | 2016-07-15 |
| 1 | 2016-07-16 |
| 2 | 2016-07-24 |
| 2 | 2016-07-25 |
| 1 | 2016-07-29 |
| 1 | 2016-07-30 |
------------------------------
Я хочу сначала упорядочивать по date
колонке, а затем сгруппировать их по id
колонке и возьмите max(date)
для каждого id
.
Так что я хотел бы получить этот
------------------------------
| id | max(date) |
------------------------------
| 1 | 2016-07-16 |
| 2 | 2016-07-25 |
| 1 | 2016-07-30 |
------------------------------
Обратите внимание, что id=1
появляется дважды, потому что заказ на вызванных 2 отдельных «групп» id=1
, с группой id=2
между ними.
Я имею в виду, что я хочу, чтобы функция group by
группировала только строки того же значения, которые расположены рядом друг с другом по статье order by
.
Как я могу это сделать?
Что разница максимальная дата позволила так, что разница делает эти даты ставят в одну группу? – 1000111
@ 1000111 нет «разностного предела». Дело в том, что я хочу группировать только строки одного и того же 'id', которые были размещены рядом друг с другом в разделе' order by' – Malki
. У вас нет первичного ключа в вашей таблице? – 1000111