Ich habe eine Tabelle etl_control
, die latest_id
von x_data
Tabelle jeden Tag speichert. Jetzt habe ich eine Anforderung, um die Anzahl der Zeilen für jeden Tag zu erhalten. Meine Idee ist es, eine Abfrage auszuführen, um die Anzahl basierend auf einer Bedingung x_data.id <= etl_control.latest_id
für jeden Tag zu erhalten und die Anzahl zu erhalten.Abfrage Anzahl der Zeilen, wo ID ist weniger als eine Reihe von Werten in Redshift
Die Tabellenstrukturen sind wie folgt.
etl_control:
record_date | latest_id |
---------------------------------
2016-11-01 | 55 |
2016-11-02 | 125 |
2016-11-03 | 154 |
2016-11-04 | 190 |
2016-11-05 | 201 |
2016-11-06 | 225 |
2016-11-07 | 287 |
x_data:
id | value |
---------------------------------
10 | xyz |
11 | xyz |
21 | xyz |
55 | xyz |
101 | xyz |
108 | xyz |
125 | xyz |
142 | xyz |
154 | xyz |
160 | xyz |
166 | xyz |
178 | xyz |
190 | xyz |
191 | xyz |
Das Endergebnis sollte für jeden Tag die Anzahl der Zeilen in x_data haben. Ich habe eine Reihe von Variationen mit JOIN, WITH und COUNT (*) OVER versucht. Die größte Hürde ist jedoch der iterative Vergleich von x_data.id mit etl_control.latest_id.