在PostgreSQL我不能執行這個代碼聚合列必須在集團通過
SELECT name, SUM(sws) as sws, SUM(sws) over (partition by sws) swsrange FROM professoren
JOIN vorlesungen on persnr = gelesenvon
group by name
order by sws desc
的錯誤代碼是:
FEHLER:在德集團Spalte»vorlesungen.sws«搞亂-BY-Klausel erscheinen奧德在einer Aggregatfunktion verwendet werden LINE 1:SELECT姓名,SUM(SWS)如以上(由s分區SWS,SUM(SWS)...
該機構H e想要「sws」必須在聚合函數中(或實際上是)。
UPDATE:
我改成了
SELECT name, SUM(sws) as swscount, SUM(sws) over (partition by name) swsrange FROM professoren
JOIN vorlesungen on persnr = gelesenvon
group by name, sws
輸出爲:
奧古斯丁,2,2- |康德,8,4 |波普,2,2- | Russel,2,5 | Russel,6,5 | Sokrates,2,6 | Sokrates,8,6
但它應該像第一列一樣是名字,第二是他給出的所有課程的總和(),第三是像最有經驗的排名:
Sokrates,10,1 | Kant,8,2 | Russel,8,2 | Augustinus,2,3 |波普爾,2,3
我在這裏看不到問題。 感謝您的幫助。
'分區的sws' - 您使用SWS超過它分區,它需要像「名稱」一樣去分組。或者更好地移除組並按名稱在窗口中添加分區? –
您可以寫一些示例數據,突出顯示您的期望輸出是什麼? (請在文本中寫入示例數據 - 不是圖像) – etsa
@etsa i更新了sql查詢 – Kjenos