Ich habe Probleme beim Aufteilen eines Datensatzes in mehrere andere Datensätze, so dass ich die Min-Werte aus ihnen bekommen kann. Grundeinstellung hierfür: Schlüssel kann gleichzeitig in verschiedenen Ländern verwendet werden (Länder-IDs sind in Spalte a). Ein Schlüssel (Spalte b im Bild) kann nach einer bestimmten Zeit wieder verwendet werden, in diesem Fall 120 Tage. Ein Schlüssel kann ungefähr 10 Ereignisse zusammen mit Daten haben.Aufteilen von Daten in Windows und Abrufen von Mindestwert aus diesem Fenster in Tsql
Das, was ich versucht zu tun ist, ein und b Spalten das erste Datum des ganzen Satzes und Aufteilung über Aufnahme und Verwendung von datediff()
die Anzahl der Tage zwischen dem min Datum der bekommen ganze Reihe und jedes einzelne Ereignis. und dann nachher die Nummer verwenden, die von Datiff/120 zurückgegeben wurde, um sie zu gruppieren. Die Sache, die ich wirklich machen wollte, ist, das Min-Datum jedes Satzes (nicht den ganzen Satz) zu nehmen und darauf basierend zu berechnen. Ich hoffe wirklich, dass ich Ihnen genug gute Helfer erklärt habe, um zu verstehen, wonach ich suche. Jetzt, wo ich denke ... Ich mache mir Sorgen, dass, selbst wenn ich das Mindestdatum eines einzelnen Satzes bekommen und es dann durch 120 teilen würde, würde ich falsche Ergebnisse bekommen. Irgendwelche Vorschläge geschätzt!
Gebraucht ich etwas wie folgt aus: DATEDIFF(d,min(dates) OVER (PARTITION BY a, b), dates)/120
Visual explanation of what I need to achieve and how.
sample data desired outcome
| CountryId | Key | date | | CountryId | Key | date |
|-------------|-------------|--------------| |-------------|-------------|--------------|
| 2 | 093123124 | 2015-04-16 | | 2 | 093123124 | 2015-04-16 |
| 2 | 093123124 | 2015-04-16 | | 2 | 093123124 | 2015-11-24 |
| 2 | 093123124 | 2015-04-17 | | 2 | 093123124 | 2016-04-17 |
| 2 | 093123124 | 2015-04-17 |
| 2 | 093123124 | 2015-11-24 |
| 2 | 093123124 | 2015-11-24 |
| 2 | 093123124 | 2015-11-25 |
| 2 | 093123124 | 2015-11-25 |
| 2 | 093123124 | 2015-11-25 |
| 2 | 093123124 | 2016-04-17 |
| 2 | 093123124 | 2016-04-18 |
| 2 | 093123124 | 2016-04-20 |
| 2 | 093123124 | 2016-04-21 |
| 2 | 093123124 | 2016-04-22 |
Ist besser, wenn Sie Ihre Daten als Text veröffentlichen, können wir nicht Paste aus Bild kopieren. Zeigen Sie uns das Datenbankschema, die Beispieldaten und die erwartete Ausgabe. Bitte lesen Sie [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t Und hier ist ein großartiger Ort, um [** START **] (http : //spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) um zu erfahren, wie Sie die Qualität Ihrer Fragen verbessern und bessere Antworten erhalten. –
Daten als Text hinzugefügt, so dass es einfacher zu kopieren ist, sowie das erwartete Ergebnis. Danke für die Tipps. –
Zuerst sieht es aus wie ein 'DISTINCT' ... Aber ich verstehe nicht die Logik für Ihre Wunschausgabe. Wohin geh '11-25'? Anstelle von 'a, b, c' benutzen Sie auch die Variablennamen –