AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 282962
Accepted
Dave
Dave
Asked: 2021-01-11 12:01:12 +0800 CST2021-01-11 12:01:12 +0800 CST 2021-01-11 12:01:12 +0800 CST

如何显示以前记录的运行总计?

  • 772

我想知道是否有人可以帮忙。

我有以下代码,它基本上将 10 条记录插入到一​​个表中。从这张表中,我试图显示针对卖家的销售总额。我尝试过使用 LAG 功能,但这似乎不起作用。

这是代码。


CREATE TABLE Sales 
(
    OrderId Int NOT NULL,
    Seller  varchar(10) NULL,
    Amount  money NULL
)

INSERT INTO Sales VALUES
    (1, 'Alex', 10.00),
    (2, 'Sarah', 15.00),
    (3, 'Tracy', 10.25),
    (4, 'Pete', 10.25),
    (5, 'Tracy', 11.00),
    (6, 'Tracy', 10.25),
    (7, 'Alex', 10.25),
    (8, 'Jane', 10.25),
    (9, 'Alex', 20.55)

SELECT Seller, Amount, LAG(Amount,1) OVER (PARTITION BY Seller ORDER BY Seller) AS RunningTotal FROM Sales

基本上在这个例子中,我希望得到以下输出

Seller|Amount|Running Total
Alex|10.00|10.00
Alex|1.25|20.25
Alex|20.55|40.90
Jane|10.25|10.25
Pete|10.25|10.25
Sarah|15.00|15.00
Tracy|10.25|10.25
Tracy|11.00|21.25
Tracy|10.25|31.50

希望有人可以帮助并提前感谢。戴夫

running-totals
  • 1 1 个回答
  • 17 Views

1 个回答

  • Voted
  1. Best Answer
    nbk
    2021-01-11T12:17:42+08:002021-01-11T12:17:42+08:00

    我猜你有一个 sql server,但它应该也可以在其他支持窗口函数的 rdms 上工作

    SELECT 
    Seller
    , Amount
    , SUM(Amount) OVER (PARTITION BY Seller ORDER BY Seller ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS RunningTotal 
    FROM Sales
    GO
    
    卖家 | 金额 | 运行总计
    :----- | ------: | ------------:
    亚历克斯 | 10.0000 | 10.0000
    亚历克斯 | 10.2500 | 20.2500
    亚历克斯 | 20.5500 | 40.8000
    简 | 10.2500 | 10.2500
    皮特 | 10.2500 | 10.2500
    莎拉 | 15.0000 | 15.0000
    特蕾西 | 10.2500 | 10.2500
    特蕾西 | 11.0000 | 21.2500
    特蕾西 | 10.2500 | 31.5000
    

    db<>在这里摆弄

    • 0

相关问题

  • 运行总计,直到满足特定条件

  • 唯一计数与总计数的运行比率

  • 根据先进先出 (FIFO) 计算数量

  • 重置后计算运行总计

  • 合并两个具有不同 where 语句的 Select 查询

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve