Cytat
"SEDU_GUID" "GUID" "NAZWA"
"ala" "jakisg1" "Kopia dla guid"
"ola" "jakisg2" "sedu adminJST"
"ala" "jakg3" "sedu2 adminJST"
"ala" "jakisg1" "Kopia dla guid"
"ola" "jakisg2" "sedu adminJST"
"ala" "jakg3" "sedu2 adminJST"
czyli mam rekordy, ktore na podstawie tej samej SEDU_GUID tworzą grupe rekordów. Tutaj będą to "ala" i "ola". Chcialbym teraz wyciągnąć po jednym rekordzie z kazdej grupy, czyli otrzymac np. tak:
Cytat
"SEDU_GUID" "GUID" "NAZWA"
"ala" "jakisg1" "Kopia dla guid"
"ola" "jakisg2" "sedu adminJST"
"ala" "jakisg1" "Kopia dla guid"
"ola" "jakisg2" "sedu adminJST"
NIe interesuje mnie, ktory rekord z grupy zostanie zwrocony. W mysql by to wyglądalo tak:
SELECT sedu_guid, guid, nazwa FROM sedu GROUP BY sedu_guid;
Ale oczywiscie w tym "genialnym" oraclu juz takie proste rzeczy nie dzialają, bo nie mozna grupowac po jednej kolumnie gdy w select mamy ich wiecej. Zeby dzialalo to musze do group by dowalic wszystkie kolumny co są w select, ale wowczas wywala mi wszystkie rekordy zamiast po jednym z grupy. Da sie to jakos prosto zalatwic?
edit: wymyslilem podzapytanie:
SELECT SEDU.GUID,SEDU.SEDU_GUID,SEDU.NAZWA FROM SEDU WHERE ID IN (SELECT max(ID) FROM sedu GROUP BY (sedu_guid))
Dzialac dziala, ale jak ktos znajdzie rozwiązanie jakies ladniejsze to chętnie poslucham

edit:
i mam:
SELECT SEDU.SEDU_GUID,max(SEDU.NAZWA) NAZWA FROM SEDU GROUP BY SEDU_GUID
czyli te kolumny co chce sobie pobrac, to biore w max().... poronione, ale dziala

edit:
Dobra, a inaczej:
Chce pobrać rekord, który posiada wartość pola STATUS, będącą wartością najmniejszą w danej grupie (grupowanie po SEDU_GUID). Gdyby takich rekordów bylo kilka, chce pobrac tylko jeden. Ten jeden rekord ma byc tym, ktory byl najwczesniej dodany (pole: DATA_DODANIA).
ps: rzuccie linkiem do jakiegos porządnego manuala/kursu dla oracle, bo juz nerwicy dostaję przy tej bazie. Jakim cudem jest ona uwazana za lepszą od mysql? (pytanie retorycznie - nie odpowiadac)