我希望Oracle SQL專家能夠幫助解決這個問題。我有一個具有以下列的觀點:如何在使用Oracle SQL使用OVER(分區...)時計算總計總計
MONTH (DATE)
JOB_GROUP (VARCHAR2)
PEOPLE (NUMBER)
我認爲目前看起來是這樣的:
SELECT
DISTINCT JOB_GROUP,
SUM(PEOPLE) OVER (PARTITION BY MONTH || JOB_GROUP) AS CURRENT_PEOPLE
SUM(PEOPLE) OVER (PARTITION BY MONTH || JOB_GROUP)/'100' AS RATIO
FROM MY_VIEW
WHERE MONTH = '01-DEC-2013'
ORDER BY RATIO DESC
的「100」來自於翻出當月的我頂頁面上的隱藏項目Worker1,但對於這個例子,我只是使用'100'。 查詢的結果出現這樣的事情。
JOB_GROUP CURRENT_PEOPLE RATIO
WORKER1 100 1.0
WORKER2 80 0.8
WORKER3 50 0.5
我在尋找的GRAND總數是查詢結果底部的CURRENT PEOPLE AND RATIO。我將把它放入APEX Classic報告中。在這個例子中是230和2.3。由於我使用OVER(分區)方法,因此我無法使用任何種類的GROUP BY。
欣賞你可能have..thank你
你不應該使用'(PARTITION BY MONTH || JOB_GROUP)'。對於其中的一種,您可能會進行隱式類型轉換,其次可能會因此產生錯誤的結果。直接使用這兩列:'(PARTITION BY MONTH,JOB_GROUP)'。不要使用字符串作爲數字''100''是一個字符串,而不是數字。除此之外,您還需要進行隱式數據類型轉換。您的情況'MONTH = '01 -DEC-2013''也*受到隱式數據類型轉換(並且只會在我的計算機上引發錯誤)。改用'to_date()'。 –