我想運行一個查詢,我必須使用當前行作爲透視排序。舉個例子:將函數內部的當前行值用作常量SQL
SELECT
PERSONID,
PERSONAGE AS CURRENTAGE,
MAX(CASE WHEN (CURRENTAGE-PERSONAGE) >1 THEN PERSONAGE ELSE NULL END)
OVER (PARTITION BY PERSONCITY) AS OldestYounger
FROM
PERSON;
我在想,如果這樣的事情是DB2或一般的任何數據庫可能的,我的情況要複雜得多。我沒有尋找一種解決方法,只是將當前行用作數據透視表的一種方式,然後通過通用屬性進行分區。
我知道在這個例子中,我可以只使用LAG()
並按AGE訂購,或使用RANK()
。
編輯:
預期結果:
PersonID|CurrentAge|OldestYounger|City
1 22 18 York
2 25 22 York
3 30 24 Jersey
4 18 NULL York
5 24 NULL Jersey
6 7 NULL Miami
當是PersonID 2選擇它應該找到在同一個城市兩個弟弟的人,然後拿到MAX()
值。但是在執行CurrentAge-PersonAge時,它是一樣的,並且總是返回零。我正在尋找一種方法使CurrentAge在該實例中保持不變,同時查看其他PersonAge的。
你好夏普歡迎來到StackOverflow,請閱讀[**如何問**](http://stackoverflow.com/help/how-to-ask)和[**如何創建一個最小,完整和可驗證的例子。**](http://stackoverflow.com/help/mcve) –
您是否希望將此行專門設置爲主鍵或具有類似屬性的主鍵?如果您不嘗試執行一對一的數據透視,則主鍵和外鍵是執行此操作的常用方法。 – Colin
您可能想要顯示您的預期結果可能看起來像什麼,因爲您的解釋不是很有幫助。 – mustaccio