[英]The same SQL query is yielding different results each time it is run. How do I resolve?
[英]Why might my SUM query be producing different results each time I run it?
發布此問題可能毫無意義,因為我無法顯示導致問題的實際代碼,並且由於不知道問題的根源,因此無法使用假數據重新創建它,但想問一下是否有人看到過類似的東西.
我有一個查詢,它有一個 SUM windows function 每次運行時都會返回不同的值,盡管代碼或基礎數據沒有變化。 從字面上看,相同的語句相隔兩秒運行將返回一個看似隨機的選擇,從 4 到 7。
我無法打印實際代碼,但產生不同結果的行如下,其中列名已更改:-
SUM(UNITS) OVER (PARTITION BY ACCOUNT_KEY, TRANSACTION_DATE
ORDER BY ACCOUNT_KEY,TRANSACTION_DATE) NUMBER_OF_UNITS
如果有人可以就如何解決這個問題提供任何建議,或者如果您遇到類似問題,請告訴我。 我意識到,如果沒有完整的代碼,就很難確定,但是有人可能已經看到了類似的問題,並且可能會提供一些指導。
您的ORDER BY
鍵與您的PARTITION BY
鍵相同。 因此,沒有排序 - window 框架中的所有內容都具有相同的排序鍵值。
您正在對不穩定的排序進行累積和。 因此,這些行可以——並且是——以任意順序排列。
大概,您想要每個帳戶的累計UNITS
總和,按日期排序:
SUM(UNITS) OVER (PARTITION BY ACCOUNT_KEY ORDER BY TRANSACTION_DATE) as NUMBER_OF_UNITS
假設TRANSACTION_DATE
是唯一的,這將是穩定的。 請注意,默認情況下,一個帳戶的相同交易日期會一起出現,因為默認窗口子句是RANGE
:
SUM(UNITS) OVER (PARTITION BY ACCOUNT_KEY
ORDER BY TRANSACTION_DATE
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) as NUMBER_OF_UNITS
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.