![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 4 Dołączył: 6.05.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam taką tabelę id | id_obiektu | wartosc --------------------------- 0 | 0 | a_id0 1 | 0 | b_id1 2 | 1 | c_id2 3 | 2 | d_id3 4 | 2 | e_id4 5 | 2 | f_id5 Chcę pogrupować wynik w zbiory według id_obiektu i aby w kolumnie "wartość" pokazały się wartości (a_id0, b_id1...) przy największym id w grupie i aby było posortowane malejąco według max(id). Czyli: id | id_obiektu | wartosc | MAX(id) --------------------------- 5 | 2 | f_id5 | 5 2 | 1 | c_id2 | 2 1 | 0 | b_id1 | 1 Próbuję tak:
i otrzymuję ładnie posorowane malejąco od największego id w grupie ( MAX(id) ), ale w kolumnie "wartość" otrzymuję wartości dla minimalnego id i tak samo id jest najmniejsze w grupie, czyli: id | id_obiektu | wartosc | max(id) ------------------------------------ 3 | 2 | d_id3 | 5 2 | 1 | c_id2 | 2 0 | 0 | a_id0 | 1 Częściowo udało się to zrobić z DESC na końcu
bez ORDER BY sortuje według id_obiektu i podaje najwieksza wartosc w grupie, ale po dodaniu ORDER BY (które teoretycznie powinno odnosić się do zbioru wynikowego), powstaje jeszcze znowu to samo sie dziej. Inaczej, może bardziej obrazowo: mamy wynik w grupach (jakiś wiersz reprezentuje grupę), i chcemy, aby reprezentantem grupy był rekord z najwiekszym id w tej grupie i, aby wszystko było posortowane według id malejąco. Z góry dzięki za pomoc. Nie moge sobie z tym poradzić chyba od x godzin.. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 20:05 |