Das folgende Resultset wird von einer SQL-Abfrage mit einigen Joins und einer Union abgeleitet. Die SQL-Abfrage gruppiert bereits Reihen am Datum und am Spiel. Ich brauche eine Spalte, um die Anzahl der Versuche in einem Spiel zu beschreiben, das nach der Datumsspalte partitioniert ist.PostgreSQL-Fensterfunktion: row_number() over (Partitionssperrreihenfolge von col2)
Username Game ID Date
johndoe1 Game_1 100 7/22/14 1:52 AM
johndoe1 Game_1 100 7/22/14 1:52 AM
johndoe1 Game_1 100 7/22/14 1:52 AM
johndoe1 Game_1 100 7/22/14 1:52 AM
johndoe1 Game_1 121 7/22/14 1:56 AM
johndoe1 Game_1 121 7/22/14 1:56 AM
johndoe1 Game_1 121 7/22/14 1:56 AM
johndoe1 Game_1 121 7/22/14 1:56 AM
johndoe1 Game_1 121 7/22/14 1:56 AM
johndoe1 Game_1 130 7/22/14 1:59 AM
johndoe1 Game_1 130 7/22/14 1:59 AM
johndoe1 Game_1 130 7/22/14 1:59 AM
johndoe1 Game_1 130 7/22/14 1:59 AM
johndoe1 Game_1 130 7/22/14 1:59 AM
johndoe1 Game_1 200 7/22/14 2:54 AM
johndoe1 Game_1 200 7/22/14 2:54 AM
johndoe1 Game_1 200 7/22/14 2:54 AM
johndoe1 Game_1 200 7/22/14 2:54 AM
johndoe1 Game_1 210 7/22/14 3:54 AM
johndoe1 Game_1 210 7/22/14 3:54 AM
johndoe1 Game_1 210 7/22/14 3:54 AM
johndoe1 Game_1 210 7/22/14 3:54 AM
Ich habe die folgende SQL-Abfrage, die die Zeilen innerhalb der Partition aufgezählt, aber nicht ganz korrekt, da ich die Zählung der Instanzen dieses Spiel auf dem Datum und Spiel wollen. In diesem Fall hat johndoe1 bei Game_1 fünfmal durch die Zeitstempel partitioniert versucht.
Diese Abfrage liefert Ergebnis unter
select *
, row_number() over (partition by ct."date" order by ct."date") as "Attempts"
from csv_temp as ct
Username Game ID Date Attempts (Desired Attempts col.)
johndoe1 Game_1 100 7/22/14 1:52 AM 1 1
johndoe1 Game_1 100 7/22/14 1:52 AM 2 1
johndoe1 Game_1 100 7/22/14 1:52 AM 3 1
johndoe1 Game_1 100 7/22/14 1:52 AM 4 1
johndoe1 Game_1 121 7/22/14 1:56 AM 1 2
johndoe1 Game_1 121 7/22/14 1:56 AM 2 2
johndoe1 Game_1 121 7/22/14 1:56 AM 3 2
johndoe1 Game_1 121 7/22/14 1:56 AM 4 2
johndoe1 Game_1 121 7/22/14 1:56 AM 5 2
johndoe1 Game_1 130 7/22/14 1:59 AM 1 3
johndoe1 Game_1 130 7/22/14 1:59 AM 2 3
johndoe1 Game_1 130 7/22/14 1:59 AM 3 3
johndoe1 Game_1 130 7/22/14 1:59 AM 4 3
johndoe1 Game_1 130 7/22/14 1:59 AM 5 3
johndoe1 Game_1 200 7/22/14 2:54 AM 1 4
johndoe1 Game_1 200 7/22/14 2:54 AM 2 4
johndoe1 Game_1 200 7/22/14 2:54 AM 3 4
johndoe1 Game_1 200 7/22/14 2:54 AM 4 4
johndoe1 Game_1 210 7/22/14 3:54 AM 1 5
johndoe1 Game_1 210 7/22/14 3:54 AM 2 5
johndoe1 Game_1 210 7/22/14 3:54 AM 3 5
johndoe1 Game_1 210 7/22/14 3:54 AM 4 5
gesetzt Alle Hinweise von großer Hilfe sein würde.
Vielleicht hilft dies http://java.dzone.com/articles/difference-bww-rownumber –
Betrachtet man die gewünschten Ergebnisse, ist der einzige Unterschied zwischen den Zeilen in einer Gruppe "(Gewünschte Attents col.)" Die 'Versuche' Spalte. Vielleicht könntest du einfach nach 'Username, Game, ID' gruppieren, add 'count (1)', um die Anzahl der Versuche zu erhalten und 'row_number()' hinzufügen, um die '(gewünschte Versuche col.)' '? – Jakub