TOP, Zapytanie

0

Jak napisać zapytanie które zwróci mi wynik w postaci np 10 najlepszych z kolumny np ilość?

0

Zależy na jakiej bazie - niestety nie ma tu zgodności. Niektóre bazy (jak PostgreSQL) oferują słowo kluczowe LIMIT, inne (jak na przykład Oracle) wymagają przeindeksowania wyników i pozostawienia wyników tylko do określonego indeksu.

0

oracle

0

Czy ktoś potrafi napisać takiego selecta?

0

Oracle:

SELECT * FROM tabelka WHERE ROWNUM <= 10;

MS SQL, Sybase ASA:

SELECT TOP 10 * FROM tabelka;

PostgreSQL, MySQL:

SELECT * FROM tabelka LIMIT 10;

0
Krolik napisał(a)

Oracle:

SELECT * FROM tabelka WHERE ROWNUM <= 10;

niestety nie jest to takie proste.
mamy np kolumny: ID, Nazwisko, ilosc.
Chcemy top10 z ilosc ktora nie jest ułozona pokolej. Więc rownum pokaże tylko 10 rekordów a nie top 10
przydało by się coś w stylu:

SELECT * FROM tabelka WHERE ROWNUM <= 10 order by ilosc desc;

Ale to też da zły wynik. bo order by będzie dzialać tylko do tych 10 rekordów z rownum


Łatwizna :)
Wystarczy trochę pomysleć.

select * from (SELECT * FROM tabelka order by ilosc desc) WHERE ROWNUM <= 10

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