GROUP BY und Aggregation auf Vector von Karten - Clojure

8

Ich habe Daten, die so aussehen

%Vor%

Ich möchte nach: firmAccount gruppieren und dann SUMME: Val und: PE für jeden Firmenaccount und bekomme so etwas wie

%Vor%

Es ist wirklich eine triviale Sache und in SQL würde ich nicht einmal zweimal darüber nachdenken, aber seit ich clojure lerne, bitte bitte mit mir

    
Ash 26.08.2011, 11:13
quelle

3 Antworten

8

Clojure.core verfügt über eine integrierte Gruppierungsfunktion. Die Lösung wird durch das Vorhandensein von Text und Intels in den Maps ein wenig hässlich.

%Vor%     
mac 26.08.2011, 12:03
quelle
5

Und der Vollständigkeit halber ist hier eine alternative Version, die map verwendet:

%Vor%     
user499049 28.08.2011 01:42
quelle
1

Versuchen Sie, ein neues Karten-Array oder eine Karte mit Karten mit derselben Struktur zu erstellen. Sie können eine Funktion schreiben, um Elemente zu dieser neuen Karte hinzuzufügen, die diese Felder summiert, wenn das: Firmenkonto existiert. Vielleicht eine Karte wie diese?

%Vor%

Mit einer personalisierten Add-Funktion wie:

%Vor%     
Pedro Montoto García 26.08.2011 11:52
quelle

Tags und Links