2010-06-17 77 views
6

關於如何通過兩列總和而不是單列來排序MYSQL查詢結果的任何想法?MYSQL訂單總和列

Select * FROM table ORDER BY (col1+col2) desc 

我知道這是行不通的,但我希望它能傳達我想要做得相當好的事情。

謝謝!

回答

21

爲什麼不在結束之前嘗試不起作用?事實上,它確實如此。

+0

將存儲關於它在COL3總和(COL1 COL2 +)和索引,使得查詢快? – user2681045 2014-08-14 00:26:11

+1

@ user2681045,我懷疑它會使問題中的查詢更快。如果你把它改成'ORDER BY col3'並且有合適的索引,也許。但是這是以非規範化表格爲代價的。 – 2014-08-21 07:36:29

+1

他不知道在放棄和發佈問題之前他有多接近成功。 – qualebs 2014-12-14 21:17:24

1

您所寫的查詢應該可以正常工作,您可以在ORDER BY子句中使用任何表達式。

+0

它不適用於我,我不認爲你可以在ORDER BY子句上有一個表達式 – 2016-04-30 15:25:26

2

我想你應該能夠做到

SELECT *, col1+col2 as mysum ORDER BY mysum 

基本上是一樣的,你已經有

3

假設你有一個名爲「學生

enter image description here

現在你想知道每個學生得分的總分數。 所以,鍵入下面的查詢

SELECT Name, S1, S2, SUM(S1+S2) AS TOTAL 
FROM Students 
GROUP BY Name, S1, S2 
ORDER BY Total; 

您將得到以下結果。

enter image description here