Ich habe eine Frage zur Datenanalyse, die ich leicht mit etwas T-SQL oder etwas Scripting lösen könnte, aber ich fragte mich, ob es eine clevere SQL-Lösung gab. Das Problem ist, dass es ein wenig mit der Zeilenunabhängigkeitsannahme von SQL etwas verwechselt.Zählen aufeinander folgender Duplikate mit SQL
Ich habe eine Tabelle, die zum Beispiel mit einem Benutzer und geordnet nach Vorlage, zugeordnet Name-Wert-Paaren besteht:
ID USERID VARIABLE VALUE SUBMITTED 3115 2287 votech05 2 2009-02-02 15:34:00 3116 2287 comcol05 1 2009-02-02 15:34:00 3117 2287 fouryr05 1 2009-02-02 15:35:00 3118 2287 none05 2 2009-02-02 15:35:00 3119 2287 ocol1_05 2 2009-02-02 15:44:00 3120 2287 disnone 2 2009-02-02 15:45:00 3121 2287 dissense 2 2009-02-02 15:49:00 3122 2287 dismobil 3 2009-02-02 15:51:00 3123 2287 dislearn 3 2009-02-02 15:51:00 3124 2287 disment 3 2009-02-02 15:52:00 3125 2287 disother 2 2009-02-02 15:55:00 3126 2287 disrefus 7 2009-02-02 15:58:00
ich in der Lage sein möchte, den Wert und die Zählung des größten zu bestimmen Gruppe identischer Werte (wenn die Daten geordnet sind, der ID-Primärschlüssel). Also, für das obige Beispiel, weil ich vier Wert = 2 in der Reihenfolge erscheinen, und nur drei Wert = 3, wurde ich melden:
USERID VALUE COUNT 2287 2 4
für den jeweiligen Benutzer.
Auch dies wäre ziemlich schnell mit anderen Tools möglich, aber da der Datensatz ziemlich groß ist (etwa 75 Millionen Datensätze) und sich häufig ändert, wäre es schön, dieses Problem mit einer Abfrage lösen zu können . Ich arbeite mit SQL Server 2005.
Guter Titel bearbeiten, Brian. Vielen Dank.Ich arbeite für einen Umfrageforscher, und sein Jargon hat die Art und Weise beeinflusst, wie ich über das Problem nachdachte. –