最佳答案
                
                                    楼上的解答很赞,你的这个需要应该是需要用到条件查询 case when then else end…
SELECT
    pid,
    uid,
    SUM( score ) AS score,
    MAX( created_at ) AS created_at,
    SUM( CASE WHEN type = 1 THEN score ELSE 0 END ) AS type1,
    SUM( CASE WHEN type = 2 THEN score ELSE 0 END ) AS type2,
    SUM( CASE WHEN type = 3 THEN score ELSE 0 END ) AS type3,
    SUM( CASE WHEN type = 4 THEN score ELSE 0 END ) AS type4
FROM
    demo_x
GROUP BY
    uid
亲测有效

 讨论数量: 
            
                    
            楼上的解答很赞,你的这个需要应该是需要用到条件查询 case when then else end…
SELECT
    pid,
    uid,
    SUM( score ) AS score,
    MAX( created_at ) AS created_at,
    SUM( CASE WHEN type = 1 THEN score ELSE 0 END ) AS type1,
    SUM( CASE WHEN type = 2 THEN score ELSE 0 END ) AS type2,
    SUM( CASE WHEN type = 3 THEN score ELSE 0 END ) AS type3,
    SUM( CASE WHEN type = 4 THEN score ELSE 0 END ) AS type4
FROM
    demo_x
GROUP BY
    uid
亲测有效

SELECT
    MAX( uid ) uid,
    MAX( pid ) pid,
    SUM( score ) score,
    SUM( CASE WHEN type = 1 THEN score ELSE 0 END ) type1,
    SUM( CASE WHEN type = 2 THEN score ELSE 0 END ) type2,
    SUM( CASE WHEN type = 3 THEN score ELSE 0 END ) type3,
    MAX( created_at ) created_at 
FROM
    table 
GROUP BY
    uid
看一下是否符合你的要求。
楼上的解答很赞,你的这个需要应该是需要用到条件查询 case when then else end…
SELECT
    pid,
    uid,
    SUM( score ) AS score,
    MAX( created_at ) AS created_at,
    SUM( CASE WHEN type = 1 THEN score ELSE 0 END ) AS type1,
    SUM( CASE WHEN type = 2 THEN score ELSE 0 END ) AS type2,
    SUM( CASE WHEN type = 3 THEN score ELSE 0 END ) AS type3,
    SUM( CASE WHEN type = 4 THEN score ELSE 0 END ) AS type4
FROM
    demo_x
GROUP BY
    uid
亲测有效

          
                    
                    
          
          
                关于 LearnKu
              
                    
                    
                    
 
推荐文章: