荷航电 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 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。