View Full Version : mit SQL nur 100 größte Sätze lesen
Hi all,
Ich möchte aus einer Datei mit SQL die Sätze auswählen mit den 100 größten Werten eines Feldes. z.B. die Kundenummern der 100 umsatzstärsten Kunden.
Vielen Dank im Voraus
Holger
karin-vogelmann
30-01-03, 14:49
hi,
in anderen sql-umgebungen klappt TOP oder LIMIT, vielleicht findest du was ähnliches für die 400 in der doku.
gruß, karin
Hallo,
versuchs mal mit
select .... order by umsatz desc fetch first 100 rows only
Gruß Thomas
"fetch n rows only" wird leider erst ab V5 unterstützt.
Es bleibt einem halt nichts anderes übrig, als nach n Sätzen mit dem fetch selber aufzuhören, d.h., die Anzahl der Sätze selbst zu zählen.
Mir ist selbst noch eine Variante eingefallen:
Die Datei in eine andere (temporäre) Datei einfügen, in der Sie nach
dem Umsatz absteigend sortiert ist.
Anschließend mit relativ-record_number arbeiten :
SELECT * FROM dateineu WHERE RRN(dateineu) <= 100
Holger
[Dieser Beitrag wurde von holly am 31. Januar 2003 editiert.]
@holger
Die Lösung ist zwar ganz nett, ist aber
1. unzureichend wenn man mit Query auswerten will , da rrn(*) von Query nicht unterstützt wird und
2. Per Programm nach 100 Fetch aufzuhören ist erheblich effektiver.
Deine Lösung kann man für Query nur dahingehend erweitern, dass nach der Ausgabe in die Datei mittels CPYF nur 100 Sätze in eine 2. Datei kopiert werden und diese dann per Query ausgewertet werden kann.