mysql 行转列 列转行

按学号进行行转列。
  你给的信息不全,你看看我下边的记录是不是你想表达的。
  科目   成绩   学号
  语文   43        1
  数学   69        1
  英语   35        1
  (只用这三科举例子,以此类推)
  select S.学号,
  sum(case 科目 when '语文' then 成绩 else 0 end)  语文/成绩1,
  sum(case 科目 when '数学' then 成绩 else 0 end)  数学/成绩2,
  sum(case 科目 when '英语' then 成绩 else 0 end)  英语/成绩3
  from S  GROUP BY S.学号;
 
  预期结果:
  学号  语文/成绩1   数学/成绩2  英语/成绩3
  1             43                69                35
  
    二
    SELECT name , sum(if(subject = 'chinese',score,0)) as chinese
,sum(if(subject = 'math',score,0)) as math
,sum(if(subject= 'english',score,0)) as english ,sum(score) as total  from 
test_user GROUP BY name

列转行
select Date , NAME , group_concat( NAME , '总量:' ,Scount) as b_str from   TabName

 group by Date ,NAME


SHOW GLOBAL VARIABLES like'group_concat_max_len';



   三

  UPDATE INNER JOIN

 UPDATE `ka_promotion_goods` kpg INNER JOIN ka_product_center_goods kpcg on kpg.goods_id = kpcg.goods_id
set kpg.kx_price = kpcg.shop_price * 0.8 ,kpg.interest_rates =0.8
where kpg.prom_id = 4 and goods_sn = 'BSHF44968';

你可能感兴趣的:(数学,英语,记录,信息)