![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 21.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
-- Można skopiować i wgrać. UWAGA KASUJE TABELE O NAZWIE aa !
drop table if exists aa; create table aa(id integer , b integer , c integer ); insert into aa values (1,2,4); insert into aa values (2,2,3); insert into aa values (3,2,6); insert into aa values (4,4,5); insert into aa values (5,4,12); insert into aa values (6,4,1); insert into aa values (7,4,5); insert into aa values (8,4,12); -- -- chcę zapytanie które zwróci dwa wiersze -- -- 3,2,6 -- 5,4,12 -- tzn pogrupownaie po b i maximum po c -- -- coś takiego zwraca taki wynik i jest ok select ta.id,ta.b,ta.c from aa ta, ( select b,max( c ) as max from aa group by b asc ) as t where ta.b=t.b and ta.c=t.max group by ta.b ; -- coś takiego zwraca taki wynik ale tu należy zakładać że system bazodanowy wybierze -- przy grupowniau "pierwszy wiersz" (i dla max ten jest już przygotowany w podzapytaniu FROM) select t.id,t.b,t.max from( select id,b,max( c ) as max from aa group by b asc, c desc ) as t group by b ; -- a pytanie moje dlaczego to nie działa i jak to działa select id, b,c from aa group by b,c having c=max( c ); -- dziekuję za pomoc ; Ten post edytował pogdan 6.10.2010, 19:23:12 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Treściwy tytuł.
"Raportuj" z nowym tytułem, ktoś otworzy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 16:33 |