Begrenzte Listendarstellung

Fragen und Probleme rund um die Abfragespache SQL.
akretschmer
Erfahrener Benutzer
Beiträge: 7684
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Begrenzte Listendarstellung

Beitrag von akretschmer » Di 9. Okt 2018, 20:32

das funktioniert jetzt, oder?

Falls ja: in Klammern setzen, ein select * (oder die Spalten, die Du haben willst) davor und ein ALIAS where platz <= 5 dahinter.
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

simar
Benutzer
Beiträge: 69
Registriert: Di 9. Okt 2018, 17:40

Re: Begrenzte Listendarstellung

Beitrag von simar » Di 9. Okt 2018, 20:52

Danke, Danke, Danke, es funktioniert wie gewünscht ,

simar
Benutzer
Beiträge: 69
Registriert: Di 9. Okt 2018, 17:40

Re: Begrenzte Listendarstellung

Beitrag von simar » Di 9. Okt 2018, 21:03

EDV weckt Begehrlichkeiten
Ist es möglich diese 5 Einzelergebnisse zu einem Manschaftsergebnis zu summieren und sortieren

pogomips
Erfahrener Benutzer
Beiträge: 114
Registriert: Fr 18. Nov 2016, 09:55

Re: Begrenzte Listendarstellung

Beitrag von pogomips » Di 9. Okt 2018, 21:04

Es fehlt formal ein Group by "results", geht vermutlich trotzdem nur, weil postgres schlau ist.
Das Group By .. selbst ist insgesamt eigentlich auch überflüssig.

simar
Benutzer
Beiträge: 69
Registriert: Di 9. Okt 2018, 17:40

Re: Begrenzte Listendarstellung

Beitrag von simar » Di 9. Okt 2018, 21:21

@ pogomips, hast recht results war hier nur Ersatz für sum() funktion

castorp
Erfahrener Benutzer
Beiträge: 1177
Registriert: Sa 27. Jun 2009, 22:24
Wohnort: Bayern

Re: Begrenzte Listendarstellung

Beitrag von castorp » Di 9. Okt 2018, 22:56

Das GROUP BY ist falsch und wird einen Fehler liefern - ist aber auch unnötig mit einer Window Funktion.

Du musst nur die aktuelle Abfrage in eine Sub-Query packen, dann klappt das:

Code: Alles auswählen

select name, vorname, verein, ergebnis, platz
from (
  select shooters.surname as Name,
         shooters.forename as Vorname,
         shooters.club as Verein,
         journal.results as Ergebnis,
         ROW_NUMBER() OVER (partition by shooters.club ORDER BY journal.results desc) as Platz
  from home.journal
    join home.shooters ON journal.shooters_id = shooters.shooters_id
  where journal.event_status = 'finished'
    and journal.shooters_id > 0
) t
where platz <= 5
order by Verein, Ergebnis desc;
Ich habe Deine veralteten impliziten Joins gleich durch einen modernen expliziten JOIN Operator ersetzt.

Die Bedingung "and journal.shooters_id > 0" sieht etwas merkwürdig aus. Gibt es denn überhaupt Shooter mit der ID=0? Wenn, nicht, dass ist das überflüssig da der JOIN solche Datensätze ja eliminieren würde. Sieht schwer danach aus, als würde da ein Foreign key fehlen.
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

simar
Benutzer
Beiträge: 69
Registriert: Di 9. Okt 2018, 17:40

Re: Begrenzte Listendarstellung

Beitrag von simar » Mi 10. Okt 2018, 10:10

@castorp, das mit dem "veraltet" kommt auf den Punkt, ich hab seit 25 Jahren nichts mehr mit SQL zu tun und das Veraltete war mir eben noch etwas in Erinnerung. Versuche nun da Bedarf entstanden ist mich wieder etwas einzulesen und hoffe dass ich mich vertrauensvoll an euch wenden darf.

Deshalb mal Danke für eure schnelle Hilfe

Gruß Simar

castorp
Erfahrener Benutzer
Beiträge: 1177
Registriert: Sa 27. Jun 2009, 22:24
Wohnort: Bayern

Re: Begrenzte Listendarstellung

Beitrag von castorp » Mi 10. Okt 2018, 10:19

Der explizite JOIN Operator wurde vor 29 Jahren im SQL Standard ("SQL:89") eingeführt ;)
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

akretschmer
Erfahrener Benutzer
Beiträge: 7684
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Begrenzte Listendarstellung

Beitrag von akretschmer » Mi 10. Okt 2018, 10:34

ROFL ;-)
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

simar
Benutzer
Beiträge: 69
Registriert: Di 9. Okt 2018, 17:40

Re: Begrenzte Listendarstellung

Beitrag von simar » Mi 10. Okt 2018, 11:57

Weiß ich wohl, aber ich war und bin kein Entwickler sondern nur ein ahnungsloser Nutzer der damals und heute wieder, Auswertungen braucht. So gings für mich eben einfacher. Ich wußte damals nicht mal wie man UNIX SQL schreibt, aber meine Kalkulationen haben auf den, Pfennig damals, gestimmt. :cool:

Antworten