Załóżmy miałem ten poniższej tabeli w SQL Server:Zapytanie - suma z warunkami w klauzuli partycji?
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
A czego szukałem do osiągnięcia (słownie) woud być: Utwórz nową kolumnę, Conditional_Sum
= suma ColC
dla każdej wartości w ColA
gdzie ColB = 1
i ColC > 0
więc ostateczny wynik byłby (dodane w rownum aby pokazać jak mam wartości):
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)
Więc moje pseudo-SQL dla tego byłoby:
Sum(ColC) Over(Partition By ColA, ColB=1,ColC>0) as Conditional_Sum
Jak mogę osiągnąć ten rodzaj związku w moim zbiorze ??
Dzięki !!!!!!
OMG - to jest niesamowite ** ** - dokładnie to, czego szukałem dla!! Nie mogę jeszcze przyjąć odpowiedzi, ale zrobię to tak szybko, jak będę mógł! - ** DZIĘKUJEMY! ** –
@JohnBustos: Serdecznie zapraszamy :-) –
PS - Dzięki za połów na rzędach 7 + 9 sum - zaktualizowałem pytanie. Dzięki jeszcze raz!!! –