Minimalna wartość po where

0

Chcę wyświetlić pewne kolumny ale tylko takie, które w innej kolumnie mają wartość minimalną.
Coś co rozumiem tak:

SELECT kolumna1 FROM tabela1 WHERE kolumna2=MIN(kolumna2);

ale tak nie działa, bo

MIN

nie może być po WHERE


Próbowałem zagnieżdżeń ale nie dałem rady zrobić tego tak jak należy.

Dodam, że chodzi o bazę ORACLE.
0

min() to funkcja grupująca jest po having: http://strefakodera.pl/bazy-d[...]h-klauzula-having-w-sql-cz-iv

1
select kolumna1 from tabela where kolumna2=(select min(kolumna2) from tabela1)
0

ale po co podzapytania, jak po prostu HAVING można wstawić ?

0

No właśnie, że to zagnieżdżenie zwraca mi zero kolumn.

1
lukas124 napisał(a):

ale po co podzapytania, jak po prostu HAVING można wstawić ?

no nie do końca - aby było having musi być group by a jak chcesz wyświetlić wszystkie rekordy bez grupowania to musisz dać podzapytanie

gonefishing napisał(a):

No właśnie, że to zagnieżdżenie zwraca mi zero kolumn.

zapytanie zwraca tyle kolumn, ile mu wyszczególnisz. Natomiast zapytanie może zwrócić różną ilość WIERSZY/REKORDÓW/KROTEK/... w zależności od warunków zapytania.

A jeśli SELECT MIN(kolumna2) FROM tabela1 nie zwraca żadnych rekordów to znaczy, że w tabela NIE MA ani jednego rekordu

0

OKI DOKI zadziałało zagnieżdżenie. Sam próbowałem je wcześniej i też nie wychodziło. Okazało się metodą dedukcji, że należało jeszcze dodać 2 warunki w tym jeden istotny - porównanie kluczy z 2 różnych tabel.

Sorry za zamieszania i dzięki za zainteresowanie :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0