Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie prośba o pomoc
pogdan
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
erix
post
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.
Go to the top of the page
+Quote Post

Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 16:33