簡體   English   中英

使用帶匯總字段的Order by和Group By函數對SQL查詢結果進行排序時遇到麻煩

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM