【问题标题】:Group by and find amount difference sql same table分组并查找金额差异sql同一张表
【发布时间】:2020-10-05 14:07:26
【问题描述】:

我有下面这样的表格:

我想要这样的结果:按日期对金额组求和并找出结果之间的差异

【问题讨论】:

  • 你用的是我的哪个版本的sql?
  • 我正在使用服务器版本:10.3.23-MariaDB - MariaDB 服务器
  • 请将代码和数据添加为文本 (using code formatting),而不是图像。图片:A)不允许我们复制粘贴代码/错误/数据进行测试; B) 不允许根据代码/错误/数据内容进行搜索;和many more reasons。除了代码格式的文本之外,只有在图像添加了一些重要的东西,而不仅仅是文本代码/错误/数据传达的内容时,才应该使用图像。

标签: mysql sql group-by sum


【解决方案1】:

如果您使用的是 MySQL 8.0,那么您可以使用 lag() 来实现预期的输出。

select
    date,
    amount,
    coalesce((amount - last_val), amount) as diff
from
(
  select
      date,
      amount,
      lag(amount) over (order by date) as last_val
  from
  (
      select
          date,
          sum(amount) as amount
      from myTable
      group by
          date
  ) subq
) subo
order by
    date

【讨论】:

  • 它说:#1111 - 组功能的使用无效
  • @MuhammadEkkiIrfansyah 立即尝试。
  • 仍然出现同样的错误 #1111 - 无效使用组函数
  • 为什么是兄弟?我不明白...教我... :)
  • 也许它的 lag() 函数是它?只是猜测......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多