荷航电 2022-11-14 12:54 采纳率: 50%
浏览 75
已结题

以下两个SQlite3的数据库聚合查询应该怎么写?

请各位帮忙!

表:
商品 日期 姓名 金额
BJ01 20220130 小王 4000
BJ01 20220230 小王 5000
BJ01 20220330 小王 9000
SZ01 20220130 小李 4000
SZ01 20220230 小李 6000
SZ01 20220330 小李 5000
BJ01 20220130 小张 5000
BJ01 20220230 小张 6000
BJ01 20220330 小张 4000
FJ01 20220130 小陈 7500
FJ01 20220230 小陈 8500
FJ01 20220330 小陈 4000
FJ01 20220430 小陈 3500

1,按商品和姓名统计结果:
商品 日期 姓名 最大日期金额 最小日期金额 差额 月数
BJ01 20220130 小王 9000 4000 5000 3
SZ01 20220130 小李 5000 4000 1000 3
BJ01 20220330 小张 4000 5000 -1000 3
FJ01 20220430 小陈 3500 7500 -4000 4
尝试的代码,请更正!
select *,count(商品 || 姓名) as number , max(取最大日期对应的金额) as 最大日期金额,min(取最小日期对应的金额) as 最小日期金额, (max(最大日期金额) - min(最小日期金额)) as 差额
from table WHERE
GROUP BY 商品 || 姓名
order by 差额 DESC

2,按商品统计结果:
商品 日期 最大日期金额 最小日期金额 差额 月数
BJ01 20220130 13000 9000 4000 3
SZ01 20220130 5000 4000 1000 3
FJ01 20220430 3500 7500 -4000 4
尝试的代码,请更正!
select *,count(商品) as number ,小张与小王商品一样合并

  • 写回答

4条回答 默认 最新

  • Java大魔王 2022-11-14 14:41
    关注

    结果中的日期,因为有聚合操作group by,所以应该要指明,要的是最大日期还是最小日期,我两个都查了出来

    select a.*, b.金额 as 最大日期金额, c.金额 as 最小日期金额, (b.金额 - c.金额) as 差额 from(
      select 商品, max(日期) as 最大日期, min(日期) as 最小日期, 姓名, count(日期) as 月数
      from table 
      group by 商品, 姓名
    )a
    inner join(
      select * from table
    )b on a.商品 = b.商品 and  a.姓名 = b.姓名 and  a.最大日期 = b.日期
    inner join(
      select * from table
    )c on a.商品 = c.商品 and  a.姓名 = c.姓名 and  a.最小日期 = c.日期
    
    select a.*, b.金额 as 最大日期金额, c.金额 as 最小日期金额, (b.金额 - c.金额) as 差额 from(
      select 商品, max(日期) as 最大日期, min(日期) as 最小日期, count(日期) as 月数
      from table 
      group by 商品
    )a
    inner join(
      select * from table
    )b on a.商品 = b.商品 and  a.最大日期 = b.日期
    inner join(
      select * from table
    )c on a.商品 = c.商品 and a.最小日期 = c.日期
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    1人已打赏
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月16日
  • 已采纳回答 11月15日
  • 创建了问题 11月14日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器