table1的MySQL的SELECT語句來計算排名
id q1 q2 q3 q4 q5 q6
1 100 100 100 100 100 100
2 100 100 100 100 100 100
3 100 100 100 100 100 100
4 100 100 100 100 100 100
我有7個字段和4行數據的如上述 「表1」 一個MySQL表。每個q1 - q6都有一個數值,例如100,以便讓我們很容易理解我們的方程是否有效。
我想做的事情在我的MySQL查詢以下得到下面的結果(我已經打破它變成2個步驟,使其更容易理解,但我必須這樣做在一個MySQL查詢):
1 )。 SELECT q1 +((q1 + q2 + q3 + q4 + q5 + q6)/ 6)AS排名
對於每個數據庫行AS排名,應返回200的值(基於每個項目的100行)
2)。 Q1 +(Q1 + Q2 + Q3 + Q4 + Q5 + Q6)/ 6)/ SUM(排名)
OR
排名/ SUM(排名)
所以應返回的200的值對於每一行:200/SUM(排名)
這應該等於0.25(八百分之二百= 0.25)(排名/ SUM(排名))
我現在有下面的MySQL查詢沒有返回正確的如上所示的值:
SELECT *,
(q1 + ((q1 + q2 + q3 + q4 + q5 + q6)/6)) AS ranking,
(q1 + ((q1 + q2 + q3 + q4 + q5 + q6)/6)/(
SELECT SUM(q1 + ((q1 + q2 + q3 + q4 + q5 + q6)/6))
FROM data
WHERE customer = :customer
)) AS rankingSum
FROM data
WHERE customer = :customer
GROUP BY id
ORDER BY rankingSum
DESC
上述查詢返回的值,如:100,06
不是我想要。