[英]Having troubles sorting SQL query results with Order by and Group By functions with Aggregated fields
我的以下查詢結果遇到了一些問題。
我的意圖是顯示主機收到的總付款的結果,並根據匯總列以降序排列(別名為“已收到的總金額($)”)
Select H.host_name AS 'Host Name',
H.location AS 'District',
AVG(F.host_feedback_rating) AS 'Average Rating',
SUM(P.payment_amount) AS 'Total Amount Received ($)'
FROM booking B, host H, payments P, feedback F
WHERE H.host_id = P.host_id
AND F.booking_code = B.booking_code
AND F.host_id = H.host_id
AND P.payment_date between '2018/01/01' and '2018/12/31'
GROUP BY 1,2
ORDER BY 'Total Amount Received ($)' DESC;
當前結果:
Host Name District Average Rating Total Amount Received ($)
John Detroit 5 275
Leeroy Chicago 5 50
Rinoa Texas 5 225
Sally California 4 45
我試過調整GROUP BY子句,但是總收款($)不能正確排序...您能對此進行指導嗎?
非常感謝你!
'Total Amount Received ($)'
用單引號( '
)括起來,因此是常量字符串文字。 雖然按照其排序在技術上沒有錯(如您所見-您沒有錯誤),但它毫無意義,因為所有行的常量值都相同。
最簡單的方法,恕我直言,將根據列的索引而不是其別名進行排序:
ORDER BY 4 DESC
嘗試像這樣的反引號
...ORDER BY `Total Amount Received ($)` DESC
要么
...Order By 4 DESC
要么
...SUM(P.payment_amount) DESC
謝謝 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.