荷航电 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日

悬赏问题

  • ¥500 亚马逊 COOKIE我如何才能实现 登录一个亚马逊账户 下发新 COOKIE ..我使用下发新COOKIE 导入ADS 指纹浏览器登录,我把账户密码 修改过后,原来下发新COOKIE 不会失效的方式
  • ¥20 玩游戏gpu和cpu利用率特别低,玩游戏卡顿
  • ¥25 oracle中的正则匹配
  • ¥15 关于#vscode#的问题:把软件卸载不会再出现蓝屏
  • ¥15 vimplus出现的错误
  • ¥15 usb无线网卡转typec口
  • ¥30 怎么使用AVL fire ESE软件自带的优化模式来优化设计Soot和NOx?
  • ¥15 Ubuntu20.04.4.LTS系统如何下载安装VirtualBox虚拟机?
  • ¥15 如何用QDomDocument读取内容为空格的xml数据
  • ¥15 请阅读下面代码,帮我修改下代码