weixin_42853935 2022-09-26 11:35 采纳率: 85.7%
浏览 151
已结题

SQL如图计算周数据加权平均统计

img


如图,其实数据一直有从 2021/6/1 到 现在每日都会更新新的数据

想求出 按每周统计的话,计算出该表的数据 每一周,例如选取 - 周日 每7天的 客户X的一周7天内的【加权平均价格】 和 【简单平均到货量】。

结果例如(数据是虚拟的方便示意):
可以按下方数据以每周日为一周的结算条件,周日的日期为key

img

  • 写回答

6条回答 默认 最新

  • DarkAthena ORACLE应用及数据库设计方案咨询师 2022-09-26 13:27
    关注
    --创建测试数据
    create table test_20220926 (日期 date,
    客户a实际到货量 int,客户a需求量 int,
    客户b实际到货量 int,客户b需求量 int,
    客户c实际到货量 int,客户c需求量 int,
    客户a价格 int,客户b价格 int,客户c价格 int);
    insert into test_20220926 values ('2021/8/21',1125,2500,8400,8000,2400,5000,3500,4600,5400);
    insert into test_20220926 values ('2021/8/22',1125,2500,8400,8000,2400,5000,3500,4600,5400);
    insert into test_20220926 values ('2021/8/23',1125,2500,8400,8000,2400,5000,3500,4600,5400);
    insert into test_20220926 values ('2021/8/24',1125,2500,8400,8000,2400,5000,3500,4600,5400);
    insert into test_20220926 values ('2021/8/25',1125,2500,8400,8000,2400,5000,3500,4600,5400);
    insert into test_20220926 values ('2021/8/26',1125,2500,8400,8000,2400,5000,3500,4600,5400);
    insert into test_20220926 values ('2021/8/27',1125,2500,8400,8000,2400,5000,3500,4600,5400);
    insert into test_20220926 values ('2021/8/28',1125,2500,8400,8000,2400,5000,3500,4600,5400);
    insert into test_20220926 values ('2021/8/29',1125,2500,8400,8000,2400,5000,3500,4600,5400);
    
    
    --确认当前设置的一周第一天是周几
    select @@DATEFIRST;
    --如果不是周一,则设置成周一
    SET DATEFIRST 1;
    --查询
    select max(日期) 日期, 
    sum(客户a实际到货量)/7 客户a周平均到货量,
    sum(客户a需求量)/7 客户a周平均需求量,
    sum(客户a实际到货量*客户a价格)/sum(客户a实际到货量) 客户a加权平均价,
    sum(客户b实际到货量)/7 客户b周平均到货量,
    sum(客户b需求量)/7 客户b周平均需求量,
    sum(客户b实际到货量*客户b价格)/sum(客户b实际到货量) 客户b加权平均价,
    sum(客户c实际到货量)/7 客户c周平均到货量,
    sum(客户c需求量)/7 客户c周平均需求量,
    sum(客户c实际到货量*客户c价格)/sum(客户c实际到货量) 客户c加权平均价
    from test_20220926 t group by datepart(wk,日期);
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 10月4日
  • 已采纳回答 9月26日
  • 赞助了问题酬金50元 9月26日
  • 创建了问题 9月26日

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?