我希望在我的SELECT
查询和列...
SELECT Rider,
COUNT(if(Result = 1, Result, NULL)) AS "Firsts",
COUNT(if(Result = 2, Result, NULL)) AS "Seconds",
COUNT(if(Result = 3, Result, NULL)) AS "Thirds",
COUNT(if(Result = " ", Result, NULL)) AS "NP",
COUNT(*) AS "Total",
"Firsts"/"Total"*100 AS "S/R"
FROM meeting_master
WHERE RaceDayDate>="2012-01-01"
GROUP BY meeting_master.Rider
ORDER BY Firsts DESC
LIMIT 100
我的问题(以及缺乏MySQL知识)是让S/R
列计算第7行的数学...
答案 0 :(得分:3)
您不应在SELECT
中使用别名,如下所示:
"Firsts"/"Total"*100 AS "S/R"
而是像这样直接计算:
COUNT(if(Result = 1, Result, NULL))/COUNT(*) * 100 AS "S/R"
所以你的查询应该是:
SELECT Rider,
COUNT(if(Result = 1, Result, NULL)) AS "Firsts",
COUNT(if(Result = 2, Result, NULL)) AS "Seconds",
COUNT(if(Result = 3, Result, NULL)) AS "Thirds",
COUNT(if(Result = " ", Result, NULL)) AS "NP",
COUNT(*) AS "Total",
COUNT(if(Result = 1, Result, NULL))/COUNT(*) * 100 AS "S/R"
FROM meeting_master
WHERE RaceDayDate>="2012-01-01"
GROUP BY meeting_master.Rider
ORDER BY Firsts DESC
LIMIT 100