2011-03-28 2 views
2

... MySQL을 수 차례 나오는 문자열 내가이 쿼리를

SELECT SUM(brownlow_votes) AS votes, 
player_id, 
player_name, 
player_team, 
COUNT(*) AS vote_count 
FROM afl_brownlow_phantom, afl_playerstats 
WHERE player_id=brownlow_player 
AND brownlow_match=player_match 
GROUP BY player_id 
ORDER BY votes DESC LIMIT 50 

그래서 "표"는 플레이어가 투표의 수가된다

는 "vote_count는"횟수가됩니다 (일치하는 단위) 플레이어가 투표되었습니다. 이것은 잘 작동합니다.

그러나 "brownlow_lock"이라는 열은 비어 있거나 'Y'입니다. 'Y'의 발생 횟수는 어떻게 얻습니까? 이 문제를 0 또는 1로 변경하고 SUM()을 수행하면 문제를 해결할 수 있지만 데이터를 삽입하는 수많은 페이지를 편집하고 편집하고 싶지는 않습니다. 내가 제대로 이해 한 경우

답변

1

당신은 (쿼리

+0

고마워요, 그 놀이에 'Y'가있는 경우에만 계산됩니다. 그래? 때때로 그들은 1보다 많은 것을 가지고 있습니다 ... – Mark

+0

사실, 제가 틀렸을 수도 있습니다. 내 질문에 실수가 있다고 생각합니다. 실제로 모든 표를 계산하지는 않습니다. 나는 이걸로 돌아올거야! – Mark

+0

@ 마크 - 그룹 내에 하나 이상의 'Y'가있을 경우 카운트됩니다. 그것이 원하는 결과입니까? –

0

IF control flow function

SELECT SUM을 사용하여 시도에

COUNT(CASE WHEN brownlow_lock='Y' THEN 1 END) AS Cnt 

을 추가 IF (brownlow_lock = 'Y'를 필요 1,0)) lock_count ...

+0

안녕하세요 Fredrik, 나는 그것을 시도했지만 제대로 작동하지 않았습니다. 위의 대답은 잘 작동합니다. 어쨌든 고마워 :) – Mark

관련 문제