Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie prośba o pomoc
Forum PHP.pl > Forum > Bazy danych > MySQL
pogdan
-- 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 ;

erix
Treściwy tytuł.

"Raportuj" z nowym tytułem, ktoś otworzy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.