🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #195454

Re: Funkcje WINDOW

#195454
From: Roman Tyczka
Date: Tue, 28 Nov 2017 09:17
75 lines
2872 bytes
On Tue, 28 Nov 2017 08:15:33 +0100, Andrzej Stróżyński wrote:

> W dniu 2017-11-27 o 22:17, Roman Tyczka pisze:
>> On Mon, 27 Nov 2017 22:10:32 +0100, Andrzej Stróżyński wrote:
>> 
>>>>>> SELECT A, B, C,
>>>>>>     SUM(C) OVER (),
>>>>>>     SUM(C) OVER (ORDER BY A, B),
>>>>>>     SUM(C) OVER (PARTITION BY A),
>>>>>>     SUM(C) OVER (PARTITION BY A ORDER BY B)
>>>>>>     FROM TEST
>>>>>>
>>>>>> i wyniki:
>>>>>>
>>>>>> A|  B|   C|  SUM| SUM_1| SUM_2| SUM_3|
>>>>>> -------------------------------------
>>>>>> 1|  1|  30|  141|    30|    60|    30|
>>>>>> 1|  2|  20|  141|    50|    60|    50|
>>>>>> 1|  3|  10|  141|    60|    60|    60|
>>>>>> 2|  1|  25|  141|    85|    40|    25|
>>>>>> 2|  2|  15|  141|   100|    40|    40|
>>>>>> 3|  1|  41|  141|   141|    41|    41|
>>>>>>
>>>>>
>>>>> Wnioskuję wyłącznie z obserwacji Twojego wyniku:
>>>>> ORDER BY powoduje sumowanie narastająco.
>>>>> SUM_3 jest partycjonowane więc licznik zeruje się przy zmianie wartości
>>>>> partycjonującej.
>>>>
>>>> czyli ORDER BY odcina z sumy wiersze, to dość nieoczywiste dla mnie i
>>>> trochę nieintuicyjne
>>>
>>> Odcina PARTITION BY.
>>> ORDER BY decyduje o kolejności sumowania wewnątrz partycji.
>>   
>> Ale czekaj... kolumna SUM_1 pochodzi z SUM(C) OVER (ORDER BY A, B) a tu nie
>> ma PARTITION. Co zatem ucina sumę do raptem jednego wiersza z wartością 30?
> 
> No właśnie nic tu nie ucina (nie zeruje) wyniku w trakcie sumowania.
> Zaczyna od 0 i sumuje narastająco kolejne wiersze wg zadanej kolejności.

Ok, to ma sens, ale w takim razie gdy zrobiłem jak prosiłeś order by C i
wyszło:

10
30
60
15
40
41

to jak to powstało?
kolumna C posortowana wygląda tak:

10
15
20
25
30
41

zatem narastająca suma powinna wyjść:

10
25
45
70
100
141

czyli inaczej, skąd ta różnica?

-- 
pozdrawiam
Roman Tyczka
Technical Details
Message-ID: <r7iqiadu4oo0$.dlg@tyczka.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <1qtlvdtvwd3ib.dlg@tyczka.com> <5a1c7431$0$15206$65785112@news.neostrada.pl> <1a1wy99wmetn2$.dlg@tyczka.com> <5a1c7f47$0$645$65785112@news.neostrada.pl> <15wzhnp7549o5.dlg@tyczka.com> <5a1d0d14$0$658$65785112@news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: Roman Tyczka <noemail@because.no>
Newsgroups: pl.comp.bazy-danych
Subject: Re: Funkcje WINDOW
Date: Tue, 28 Nov 2017 10:17:35 +0100
Organization: ATMAN - ATM S.A.
Lines: 75
Sender: romek@tyczka.no.found
Message-ID: <r7iqiadu4oo0$.dlg@tyczka.com>
References: <1qtlvdtvwd3ib.dlg@tyczka.com> <5a1c7431$0$15206$65785112@news.neostrada.pl> <1a1wy99wmetn2$.dlg@tyczka.com> <5a1c7f47$0$645$65785112@news.neostrada.pl> <15wzhnp7549o5.dlg@tyczka.com> <5a1d0d14$0$658$65785112@news.neostrada.pl>
NNTP-Posting-Host: 94.75.90.137
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1511860655 14225 94.75.90.137 (28 Nov 2017 09:17:35 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Tue, 28 Nov 2017 09:17:35 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.15.84
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit