Aggregations-Funktionen mit Arrays verwenden - Amazon Athena

Aggregations-Funktionen mit Arrays verwenden

  • Fügen Sie mit SUM Werte zu einem Array hinzu, wie im folgenden Beispiel dargestellt.

  • Aggregieren Sie mit mehrere Zeilen in einem Array array_agg. Weitere Informationen finden Sie unter Erstellen von Arrays aus Unterabfragen.

Anmerkung

ORDER BY wird für Aggregationsfunktionen unterstützt, die in Athena Engine Version 2 beginnen.

WITH dataset AS ( SELECT ARRAY [ ARRAY[1,2,3,4], ARRAY[5,6,7,8], ARRAY[9,0] ] AS items ), item AS ( SELECT i AS array_items FROM dataset, UNNEST(items) AS t(i) ) SELECT array_items, sum(val) AS total FROM item, UNNEST(array_items) AS t(val) GROUP BY array_items;

In der letzten SELECT-Anweisung können Sie statt sum() und UNNEST zu verwenden, die Verarbeitungszeit und die Datenübertragung, wie im folgenden Beispiel, mit reduce() verkürzen.

WITH dataset AS ( SELECT ARRAY [ ARRAY[1,2,3,4], ARRAY[5,6,7,8], ARRAY[9,0] ] AS items ), item AS ( SELECT i AS array_items FROM dataset, UNNEST(items) AS t(i) ) SELECT array_items, reduce(array_items, 0 , (s, x) -> s + x, s -> s) AS total FROM item;

Jede Abfrage gibt die folgenden Ergebnisse zurück. Die Reihenfolge der zurückgegebenen Ergebnisse ist nicht gewährleistet.

+----------------------+ | array_items | total | +----------------------+ | [1, 2, 3, 4] | 10 | | [5, 6, 7, 8] | 26 | | [9, 0] | 9 | +----------------------+