Als «greatest-n-per-group» getaggte Fragen

Verwenden Sie diese Option bei Problemen, bei denen eine oder mehrere Zeilen aus jeder Gruppe in einem Datensatz zurückgegeben werden. Trotz des Namens eignet sich dieses Tag für * Minimum- * und * Maximum- * pro Gruppenabfrage.

6
Abrufen von n Zeilen pro Gruppe
Ich muss oft eine Anzahl von Zeilen aus jeder Gruppe in einer Ergebnismenge auswählen. Zum Beispiel möchte ich vielleicht die 'n' höchsten oder niedrigsten letzten Bestellwerte pro Kunde auflisten. In komplexeren Fällen kann die Anzahl der aufzulistenden Zeilen pro Gruppe variieren (definiert durch ein Attribut des Gruppierungs- / übergeordneten Datensatzes). …




3
Wählen Sie das Höchstdatum oder das späteste Datum aus
Hier sind zwei Tabellen. SCHULPERSONAL SCHOOL_CODE + STAFF_TYPE_NAME + LAST_UPDATE_DATE_TIME + PERSON_ID ================================================================= ABE Principal 24-JAN-13 111222 ABE Principal 09-FEB-12 222111 PERSONEN PERSON_ID + NAME ================= 111222 ABC 222111 XYZ Hier ist meine Orakelfrage. SELECT MAX(LAST_UPDATE_DATE_TIME) AS LAST_UPDATE, SCHOOL_CODE, PERSON_ID FROM SCHOOL_STAFF WHERE STAFF_TYPE_NAME='Principal' GROUP BY SCHOOL_CODE, PERSON_ID ORDER BY …


4
So wählen Sie die erste Zeile aus einem Join aus, der mehrere Zeilen auf dem Primärschlüssel zurückgibt
Dies hängt mit dieser Frage zusammen: Das Verknüpfen mehrerer Tabellen führt zu doppelten Zeilen Ich habe zwei Tische, an denen ich teilnehme. Sie teilen einen Schlüssel. Die Personentabelle hat einen Namen pro Primärschlüssel, aber die E-Mail-Tabelle enthält mehrere E-Mails pro Personen-ID. Ich möchte nur die erste E-Mail pro Person anzeigen. …


2
Wie kann DISTINCT ON in PostgreSQL schneller gemacht werden?
Ich habe eine Tabelle station_logsin einer PostgreSQL 9.6-Datenbank: Column | Type | ---------------+-----------------------------+ id | bigint | bigserial station_id | integer | not null submitted_at | timestamp without time zone | level_sensor | double precision | Indexes: "station_logs_pkey" PRIMARY KEY, btree (id) "uniq_sid_sat" UNIQUE CONSTRAINT, btree (station_id, submitted_at) Ich versuche …

1
SELECT LIMIT 1 pro Spaltenwert?
Nehmen wir an, ich habe die folgende Tabelle ----------------------------- | user_id | comment | ----------------------------- | 2 | thats cool | | 2 | awesome | | 3 | i hate this | | 3 | okay | | 6 | this is weird | | 6 | hello? | …

1
Linker Join ohne doppelte Zeilen
Ich habe zwei Tabellen namens recordund record_history. Für jeden Datensatz kann es mehr als einen Verlauf geben. Sie können durch idund verbunden werden record_id. Ich möchte alle recordEinträge mit den neuesten record_historyDaten erhalten. Ich habe die Abfrage wie folgt erstellt: SELECT rec.id, rec.name, rech1.data AS last_history_data FROM record rec LEFT …


1
Optimieren Sie eine LATERAL JOIN-Abfrage für eine große Tabelle
Ich benutze Postgres 9.5. Ich habe eine Tabelle, in der Seitentreffer von mehreren Websites aufgezeichnet werden. Diese Tabelle enthält ungefähr 32 Millionen Zeilen vom 1. Januar 2016 bis 30. Juni 2016. CREATE TABLE event_pg ( timestamp_ timestamp without time zone NOT NULL, person_id character(24), location_host varchar(256), location_path varchar(256), location_query varchar(256), …

3
GROUP BY eine Spalte, während in PostgreSQL nach einer anderen sortiert wird
Wie kann ich GROUP BYeine Spalte, während nur nach einer anderen sortieren . Ich versuche Folgendes zu tun: SELECT dbId,retreivalTime FROM FileItems WHERE sourceSite='something' GROUP BY seriesName ORDER BY retreivalTime DESC LIMIT 100 OFFSET 0; Ich möchte die letzten / n / Elemente aus FileItems in absteigender Reihenfolge auswählen , …


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.