Verwenden Sie das Gesamtergebnis erneut für ein anderesPython

Python-Programme
Anonymous
 Verwenden Sie das Gesamtergebnis erneut für ein anderes

Post by Anonymous »

Ich versuche, eine GROUP BY-Abfrage mit DuckDB zu verwenden. Ich habe Probleme mit einigen verschachtelten Aggregaten und bin mir nicht sicher, wie ich damit umgehen soll (im SQL-Land). Für jede Aggregatgruppe möchte ich:
  • Den Mittelwert des Aggregats berechnen
  • Dann in jedem Aggregat für Subtrahieren Sie bei einem bestimmten Preis dieses Aggregat, um ein anderes Aggregat zu berechnen.
Ich habe versucht, mir Arrow Vectorized UDF-Funktionen anzusehen, kann aber anscheinend keine Details dazu finden ob sie von DuckDB unterstützt werden?
Der aktuelle Code, an dem ich arbeite mit, aus einer Parkettdatei, die zu einem bestimmten Zeitstempel einen Preis und eine Größe hat:
df = duckdb.sql(f"""
SELECT timestamp,
first(price) AS start
sum(size) AS vol,
sum(price * size).divide(vol) AS mean,
sum(price - mean) AS subtract_mean, ## This line does not ###work
FROM '{file_raw_parquet}'
GROUP BY timestamp
""")

Ich habe die Zeile markiert, mit der ich Probleme habe. Sollte ich alternativ den Mittelwert in einer anderen Tabelle berechnen, sodass er , ist, ihn dann mit der Haupttabelle VERBINDEN und dann das GROUP BY berechnen?
Ich habe einen ähnlichen Thread gefunden, in dem es um die Wiederverwendung der Group-by-Anweisung geht: „Aggregatergebnis wiederverwenden“, war aber etwas anders als das, was ich wollte.
Vielen Dank!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post