|
Выборка последних уникальных записей с фильтром по дате
|
|||
---|---|---|---|
#18+
Не получилось придумать более внятное название. Так что как-то так. Собственно, у меня есть таблица с большим количеством записей плана: ------------------------------------ type | name | date ------------------------------------ 1 | aaaaa | 2019-11-21 1 | bbbbb | 2019-11-25 1 | ccccc | 2019-11-26 1 | aaaaa | 2019-11-27 2 | aaaaa | 2019-11-28 1 | ccccc | 2019-12-01 3 | bbbbb | 2019-12-01 1 | bbbbb | 2019-12-02 И так далее. Собственно суть - в поле name куча повторяющихся записей, но выбрать мне нужно последние, в одном экземпляре каждый, с сортировкой по дате. При этом тип 1 и имя ааааа и тип 2 с именем ааааа считаются разными. То есть по итогу мне с данной таблицы нужно получить: 1 | aaaaa | 2019-11-27 2 | aaaaa | 2019-11-28 1 | ccccc | 2019-12-01 3 | bbbbb | 2019-12-01 1 | bbbbb | 2019-12-02 Как это сделать вообще не представляю, уже весь мозг сломал. У меня даже не получается отсторировать только по имени и дате. Пытаюсь использовать GROUP BY - у меня или отбирает кучу одинаковых имен, или-же я получаю ошибку плана: which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 03:20 |
|
Выборка последних уникальных записей с фильтром по дате
|
|||
---|---|---|---|
#18+
Как всегда - только задаешь вопрос, и тут рраз - через пару минут находишь ответ. Мое решение: select type, name, max(date) from table GROUP BY name, type ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 03:45 |
|
|
start [/forum/topic.php?fid=47&tid=1828778]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 250ms |
0 / 0 |