MYSQL中基于多列的累计和

mqkwyuun  于 2022-10-31  发布在  Mysql
关注(0)|答案(1)|浏览(171)

假设我有下面的表:

  1. CREATE TABLE sales(
  2. id serial PRIMARY KEY,
  3. sales_employee VARCHAR(50) NOT NULL,
  4. fiscal_year INT NOT NULL,
  5. sale DECIMAL(14,2) NOT NULL
  6. );
  7. INSERT INTO sales(sales_employee,fiscal_year,sale)
  8. VALUES('Bob',2016,100),
  9. ('Bob',2017,150),
  10. ('Bob',2018,200),
  11. ('Alice',2016,150),
  12. ('Alice',2017,100),
  13. ('Alice',2018,200),
  14. ('John',2016,200),
  15. ('John',2017,150),
  16. ('John',2018,250);

如何我得到下面的结果:

  1. 2016 Bob 100
  2. 2016 Alice 150
  3. 2016 John 200
  4. 2017 Bob 250
  5. 2017 Alice 250
  6. 2017 John 350
  7. 2018 Bob 450
  8. 2018 Alice 450
  9. 2018 John 600

真实的样本中的员工人数和年数要多得多。

atmip9wb

atmip9wb1#

这是一个窗口sum

  1. select s.*, sum(sale) over(partition by sales_employee order by fiscal_year) as running_sales
  2. from sales s
  3. order by fiscal_year, sales_employee

相关问题