You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于DuckDB按时间戳生成价格-总数量的键值映射

解决DuckDB中按timestamp生成带sum(size)的价格直方图映射问题

直接用DuckDB的map_agg函数就能把已聚合的三列表转成目标键值映射格式,具体操作如下:

假设你已聚合的表名为agg_price_size,包含字段timestamp、price、total_size(SUM(size)的别名),执行以下SQL:

SELECT
  timestamp,
  map_agg(price, total_size) AS price_size_histogram
FROM agg_price_size
GROUP BY timestamp;

如果想直接从原始数据一步完成聚合+生成映射,也可以嵌套查询:

SELECT
  timestamp,
  map_agg(price, sum_size) AS price_size_histogram
FROM (
  -- 先按时间戳和价格聚合计算总size
  SELECT
    timestamp,
    price,
    SUM(size) AS sum_size
  FROM raw_data
  GROUP BY timestamp, price
) AS grouped_data
GROUP BY timestamp;

说明

  • map_agg(key_column, value_column)会将每个timestamp分组下的price作为键、total_size作为值,聚合生成一个MAP类型的字段,完全匹配你需要的直方图键值映射格式。
  • 生成的MAP可以直接通过map_get函数取值,比如获取某时间戳下价格为100.0的总size:map_get(price_size_histogram, 100.0)。

内容的提问来源于stack exchange,提问作者Deftness

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 06:35:55