Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вывести максимальные записи при группировке / 8 сообщений из 8, страница 1 из 1
06.12.2017, 09:39
    #39564846
sonmax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести максимальные записи при группировке
Добрый день!
есть данные:
idtkpcorpstatusotdeldate_add1511880471В работеТО23.11.2017 8:491561880471В работеТО23.11.2017 14:371631880471В работеScore24.11.2017 8:091931467471В работеТО30.11.2017 8:251391432471В работеТО20.11.2017 15:151441432471В работеScore21.11.2017 15:491501432471В работеScore23.11.2017 8:132111432471В работеТО04.12.2017 16:152151432471В работеТО05.12.2017 16:172161432472В работеТО06.12.2017 8:451411173461В работеТО21.11.2017 9:441471173461В работеScore22.11.2017 11:321621173461В работеScore23.11.2017 16:211691173461В работеScore27.11.2017 9:17
необходимо сделать выборку последних записей по полям tkp и corp
должно получиться
1631880471В работеScore24.11.2017 8:091931467471В работеТО30.11.2017 8:252151432471В работеТО05.12.2017 16:172161432472В работеТО06.12.2017 8:451691173461В работеScore27.11.2017 9:17
я делаю так:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT r1.id, r1.tkp, r1.corp, r1.otdel, r1.date_add 
FROM my_project r1 
JOIN (SELECT MAX(id) AS id, tkp, corp, otdel, date_add 
FROM my_project GROUP BY tkp ) as r2 
ON r1.id=r2.id 
GROUP BY r1.tkp


но выходит
1631880471В работеScore24.11.2017 8:091931467471В работеТО30.11.2017 8:252161432472В работеТО06.12.2017 8:451691173461В работеScore27.11.2017 9:17
т.е. группируется по полю tkp и запись id=215 выпадает
Подскажите как правильно.
...
Рейтинг: 0 / 0
06.12.2017, 10:06
    #39564858
Вывести максимальные записи при группировке
...
Рейтинг: 0 / 0
06.12.2017, 11:08
    #39564901
sonmax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести максимальные записи при группировке
...
Рейтинг: 0 / 0
07.12.2017, 05:49
    #39565510
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести максимальные записи при группировке
sonmax,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT r1.*

FROM my_project аs r1 
JOIN my_project as r2 
  ON r1.tkp  = r2.tkp
 AND r1.corp = r2.corp
 AND r1.id < r2.id

WHERE r2.id is null
...
Рейтинг: 0 / 0
07.12.2017, 08:38
    #39565537
sonmax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести максимальные записи при группировке
javajdbc,

При таком запросе у меня записи дублируются, но даже при этой выборке
такой записи нет
2161432472В работеТО06.12.2017 8:45
замена AND на OR ситуацию не спасает
Код: plsql
1.
2.
ON r1.tkp=r2.tkp
OR r1.corp=r2.corp



честно говоря я в mysql не силен, и задачу решил на C#,
но хотелось бы более красивое решение посредством mysql
...
Рейтинг: 0 / 0
07.12.2017, 15:10
    #39565938
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести максимальные записи при группировке
...да ЛЕФТ jоинт я забыл, попробуйте

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT r1.*

FROM my_project аs r1 
LEFT JOIN my_project as r2 
  ON r1.tkp  = r2.tkp
 AND r1.corp = r2.corp
 AND r1.id < r2.id

WHERE r2.id is null




если что-то дублируется -- то покажите конкретный пример
(у вас точно ИД уникальный?)

...по смыслу : условие
Код: sql
1.
2.
 AND r1.id < r2.id
WHERE r2.id is null



...выполняется ТОЛЬКО для самого большого ИД
в каждой группе одинаковых
Код: sql
1.
2.
  ON r1.tkp  = r2.tkp
 AND r1.corp = r2.corp
...
Рейтинг: 0 / 0
08.12.2017, 11:23
    #39566470
sonmax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести максимальные записи при группировке
javajdbc,

Это то, что мне нужно!
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT r1.*
FROM my_project аs r1 
LEFT JOIN my_project as r2 
ON r1.tkp  = r2.tkp
AND r1.corp = r2.corp
AND r1.id < r2.id
WHERE r2.id is null


только пришлось убрать 'as', а то MySQL ругался.
и удивительно, что запрос такой маленький по сравнению с моим изначальным.
Спасибо большое!
...
Рейтинг: 0 / 0
08.12.2017, 14:34
    #39566635
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести максимальные записи при группировке
sonmax,

всегда пожалуйста :-)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вывести максимальные записи при группировке / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]