2012-08-29 3 views
3

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

귀하의 문제가 명확하지 않다. 'S/R' 열에 대해 정확히 계산하려는 것은 무엇입니까? – hims056

+0

미안 .. 서두름. "Firsts"와 "Total"의 값을 기반으로 새로운 열 "S/R"을 계산하고 싶습니다. 순간에 나는 NULL 또는 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 

Just see SQLFiddle example here.

+0

굉장하다. .. 고마워! 나는 그렇게 접근해야했다. .. xtra 팁을 위해 심지어 건배! –