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

基于Dbeaver的SQL需求:按会员ID与服务日期累加Units

解决方案

要实现按会员ID(Mbr_id)和服务日期(DOS)汇总units,并计算每个会员的历史累计units,可使用SQL窗口函数完成,以下是适配DBeaver的通用SQL语句:

SELECT
    Mbr_id,
    DOS,
    SUM(units) AS units,
    SUM(SUM(units)) OVER (
        PARTITION BY Mbr_id 
        ORDER BY DOS 
        ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
    ) AS Total_sum_units
FROM your_table_name
GROUP BY Mbr_id, DOS
ORDER BY Mbr_id, DOS;

关键说明:

  • GROUP BY Mbr_id, DOS:先按会员和日期维度汇总每日的units数值
  • SUM(SUM(units)) OVER (...):嵌套聚合函数实现累计计算:
    • PARTITION BY Mbr_id:指定按会员分组,确保累计值仅在同一会员内计算
    • ORDER BY DOS:按服务日期排序,保证累计是按时间顺序累加
    • ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW:明确累计范围是从当前会员的第一行到当前行(部分数据库默认此行为,显式写出更清晰)

注意事项:

  • 替换语句中的your_table_name为实际数据表名称
  • 若DOS为字符串类型,需先转换为日期格式再排序,例如MySQL中可改为ORDER BY STR_TO_DATE(DOS, '%m/%d/%Y'),PostgreSQL则用ORDER BY TO_DATE(DOS, 'MM/DD/YYYY'),根据你使用的数据库类型调整即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 08:54:59