Portál AbcLinuxu, 4. prosince 2025 15:56
92131 | 10 | 3478 92334 | 8 | 4195nebo jen
92131 | 20 | 4193Nevím, jestli by to šlo udělat jedním dotazem, každopádně si na to můžete napsat uloženou proceduru. Ale dotazy, které nad stejnými daty pro stejné parametry dotazu vrací pokaždé jiné výsledky jsou dost podivné.
SELECT DISTINCT ON (location) location, time, report
FROM weather_reports
ORDER BY location, time DESC;
retrieves the most recent weather report for each location. But if we had not used ORDER BY to force descending order of time values for each location, we'd have gotten a report from an unpredictable time for each location.
SELECT
dta.id_vyrobku,
dta.sleva,
dta.skupina
FROM
(SELECT
v.id_vyrobku,
v.sleva,
v.skupina,
ROW_NUMBER() OVER (PARTITION BY v.id_vyrobku ORDER BY v.sleva ASC NULLS LAST) AS rn
FROM
vyrobek v) dta
WHERE
dta.rn = 1
/
Zkus to. PostgreSQL nemám nainstalovaný, takže nemůžu vyzkoušet.
Dotaz vybere pro každý ID_VYROBKU první řádek, který má v sloupci SLEVA nejnižší hodnotu. Pakliže je v sadě dat vícero záznamů mající stejnou (a nejmenší) hodnotu ve sloupci SLEVA, dotaz vybere právě jeden náhodný.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.