2013-07-10 41 views
0

我怎麼能產生一個逗號&分號分隔的字符串,從這個表MySql按count(*)聯合將分組選擇爲分隔字符串?

有3場

GameId(key) PlayerId(key) Rank 
1   1    1 
1   2    2 
1   3    3 
1   4    4 
1   5    5 
2   1    2 
2   2    3 
2   3    1 
2   4    5 
2   5    4 

結果我需要的結果表接近這樣的SQL

SELECT PlayerId, count(*) as R1 from Result where Rank = 1 
group by PlayerId 
union 
SELECT PlayerId, count(*) as R2 from Result where Rank < 5 
group by PlayerId 

的分隔字符串應該看起來像1,5,8; 2,3,7; 這是PlayerId,R1,R2;

+1

R1和R2應該表明什麼?我正試圖圍繞你想要完成的事情進行考慮。 –

+0

您當前的示例SQL似乎沒有提供任何與您希望輸出看起來相似的內容。例如,對於plater id 1,R1將是1,R2將是2,而對於玩家id 2,R1不存在,而R2是2. – Kickstart

+0

如果問題不夠清楚,我很抱歉。無論如何,eggyal適合我。 –

回答

0
SELECT GROUP_CONCAT(CONCAT_WS(',', PlayerId, R1, R2) SEPARATOR ';') FROM (
    SELECT PlayerId, SUM(Rank=1) R1, SUM(Rank<5) R2 
    FROM  Result 
    GROUP BY PlayerId 
) t 

請參閱sqlfiddle

+0

絕對是我想要的。謝謝! –