地图矢量上的GROUP BY和聚合 – Clojure
发布时间:2020-05-23 12:00:25 所属栏目:程序设计 来源:互联网
导读:我的数据看起来像这样 (def a [{:firmAccount MSFT :Val 10 :PE 3 } {:firmAccount MSFT :Val 15 :PE 4} {:firmAccount GOG :Val 15 :PE 3} {:firmAccount YAH :Val 8 :PE 1}]) 我想分组:firmAccount,然后将每个公司账户的:和Va
|
我的数据看起来像这样 (def a [{:firmAccount "MSFT" :Val 10 :PE 3 }
{:firmAccount "MSFT" :Val 15 :PE 4}
{:firmAccount "GOG" :Val 15 :PE 3}
{:firmAccount "YAH" :Val 8 :PE 1}])
我想分组:firmAccount,然后将每个公司账户的:和Val和:PE合并,得到类似的东西 [{:firmAccount "MSFT" :Val 25 :PE 7}
{:firmAccount "GOG" :Val 15 :PE 3}
{:FirmAccount "YAH" :Val 8 :PE 1}]
这真是一件微不足道的事情,在SQL中我甚至不会三思而后行,但是因为我正在学习clojure,请耐心等待 Clojure.core具有内置的分组功能.由于地图中存在text和int,解决方案变得有点难看.(for [m (group-by :firmAccount a)] (assoc (apply merge-with + (map #(dissoc % :firmAccount) (val m))) :firmAccount (key m))) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
