วิธีคำนวณกำลังทั้งหมดอยู่ในภาษา sql ถอยหลัง

0

คำถาม

ป้อนรูปภาพรายละเอียดที่นี่

select id,date,amount,SUM (Amount)  OVER (PARTITION BY ID ORDER BY DATE desc)  AS runningbalance from sales

ฉันพยายามนี้เพื่อย้อนกลับวิ่งหนีความสมดุลจะไปจากที่สุดที่ล่าสุดที่แก่กว่ารายการบันทึก จะให้ฉันย้อนกลับนี้จะกลับไปเป็นเหมือนเมื่อก่อจะให้ฉันวิ่งหนีความสมดุลในทางอื่น?

sql tsql
2021-11-23 20:51:45
3

คำตอบที่ดีที่สุด

2

ถ้าของคุณ ID คือยูนิคต้องแต่ละแถวนั้นการลบ PARTITION BY ID อีกมันไม่ยอมซำ cumulatively. จะย้อนกลับลำดับของคนรวมทั้งหมแค่ย้อนกลับ ORDER BY ของ SUM:

DDL:

declare @sales table (
    ID int,
    Date date,
    Amount int);

insert into @sales
values
    (1, '2020-01-01', 15),
    (2, '2020-01-02', 10),
    (3, '2020-01-03', 5);

DML:

select ID, Date, Amount, 
    sum(Amount) over (order by Date) as RunningBalanceForward, 
    sum(Amount) over (order by Date desc) as RunningBalanceBackwards
from @sales
order by ID

ผลตรวจ:

หมายเลข เดท จำนวนมาก RunningBalanceForward RunningBalanceBackwards
1 2020-01-01 15 15 30
2 2020-01-02 10 25 15
3 2020-01-03 5 30 5
2021-11-23 21:16:46
0

ในการเพิ่มเติมไปยังสิ่งที่กำลังทั้งหมดใช้เป็น row_number ต้องสร้างเรียงลำดับคอลัมน์และพื้นที่ดิสก์มันโดยระบุคำสั่งโดยเดท desc กำลังสร้างเป็น rowid งั้นคำสั่งโดย rowid

2021-11-23 21:11:41
0

แค่ต้องแสดงเป็นตัวอย่างของพาร์ติชันที่ใช้สำหรับ.

declare @Sales table (
  ID int identity(1,1) primary key,
  [Date] date,
  Store varchar(30),
  Amount int
  
);

insert into @Sales ([Date], Store, Amount)
values
  ('2020-01-01','A',1), ('2020-01-03','A',1)
, ('2020-01-05','A',1)
, ('2020-01-02','B',10), ('2020-01-04','B',10)
, ('2020-01-06','B',10)
;
    
select Store, [Date], Amount, 
    sum(Amount) over (partition by Store order by [Date] ASC) as RunningTotal, 
    sum(Amount) over (partition by Store order by [Date] DESC) as ReverseRunningTotal
from @Sales
order by Store, [Date] 
GO
ร้านขาย|วัน|จำนวนมาก|RunningTotal|ReverseRunningTotal
:---- | :--------- | -----: | -----------: | ------------------:
เป็| 2020-01-01 | 1 | 1 | 3
เป็| 2020-01-03 | 1 | 2 | 2
เป็| 2020-01-05 | 1 | 3 | 1
บี| 2020-01-02 | 10 | 10 | 30
บี| 2020-01-04 | 10 | 20 | 20
บี| 2020-01-06 | 10 | 30 | 10
2021-11-23 21:06:26

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่