Giả sử tôi có này bảng sau trong SQL Server:Truy vấn - Tổng hợp với Điều kiện trong Điều khoản Phân vùng?
ColA ColB ColC
A 1 100
A 0 -100
A 1 -100
A 0 100
A 1 100
A 1 -100
B 1 200
B 1 -200
B 1 200
C 0 300
C 1 -300
Và những gì tôi đang tìm kiếm để đạt được (bằng chữ) woud là: Tạo một cột mới, Conditional_Sum
= Sum của ColC
cho mỗi giá trị trong ColA
nơi ColB = 1
và ColC > 0
Vì vậy, kết quả cuối cùng sẽ được (thêm vào trong rOWNUM để hiển thị làm thế nào tôi có giá trị):
Rownum ColA ColB ColC Conditional_Sum
1 A 1 100 200 (rows 1+5)
2 A 0 -100 200 (rows 1+5)
3 A 1 -100 200 (rows 1+5)
4 A 0 100 200 (rows 1+5)
5 A 1 100 200 (rows 1+5)
6 A 1 -100 200 (rows 1+5)
7 B 1 200 400 (rows 7+9)
8 B 1 -200 400 (rows 7+9)
9 B 1 200 400 (rows 7+9)
10 C 0 300 0 (no rows match)
11 C 1 -300 0 (no rows match)
Vì vậy, tôi giả SQL cho điều này sẽ là:
Sum(ColC) Over(Partition By ColA, ColB=1,ColC>0) as Conditional_Sum
Làm thế nào tôi có thể đạt được loại này kết quả trong tập dữ liệu của tôi ??
Cảm ơn !!!!!!
OMG - đó là ** TUYỆT ** - chính xác những gì tôi đang tìm kiếm cho !! Không thể chấp nhận câu trả lời, nhưng tôi sẽ sớm nhất có thể! - ** THANK YOU !! ** –
@JohnBustos: Bạn được chào đón :-) –
PS - Cảm ơn bạn đã nắm bắt hàng 7 + 9 tổng cộng - Tôi đã cập nhật câu hỏi. Cảm ơn một lần nữa !!! –