2012-06-28 231 views
0

我,其中有一個用戶表&他們有多少時間獎勵記錄表我想造成這樣的數據庫(WEEK WISE)MySQL的:在使用GROUP_CONCAT&COUNT

user_name user_week user_reward 
abc   24,25,26 4,5,6 

我的查詢是這樣的

SELECT WEEK(cpd.added_date),COUNT(cpd.result) 
FROM cron_players_data cpd WHERE cpd.player_id = 81 
AND cpd.result = 2 AND cpd.status = 1 
GROUP BY WEEK(cpd.added_date); 

而且結果是

user_name user_week user_reward 
abc   24 4 
abc   24 5 
abc   24 6 

我使用GROUP_CONCAT與計數,但其useles s是有這個願望造成的任何替代方法

+0

的'用戶_ *列不會出現在您的查詢中。 –

回答

1

你有2級分組,第一個星期,然後用戶名,​​ 所以我sugest你使用子查詢一樣,第一組:

SELECT 
user_name, 
GROUP_CONCAT(user_week) AS user_weeks, 
GROUP_CONCAT(user_reward) AS user_rewards 
FROM (
    SELECT 
    user_name, 
    WEEK(cpd.added_date) AS user_week, 
    COUNT(cpd.result) AS user_reward 
    FROM cron_players_data AS cpd 
    WHERE 
    cpd.player_id = 81 AND 
    cpd.result = 2 AND 
    cpd.status = 1 
    GROUP BY user_week 
) as temp 
GROUP BY user_name; 
+0

thanx Puggan其工作 –