studingsea 2011-04-28 10:58
浏览 313
已采纳

mysql 中关于统计的SQL语句怎么写

[img]http://dl.iteye.com/upload/attachment/472291/162b1ac4-5083-332c-8b96-aab0dfbbc2f3.gif[/img]
如图所示的一个表的数据

我需要的结果如下:

customerId type orderNum shkd srmb ahkd armb shkd_2 srmb_2 ahkd_2 armb_2
113 0 1 2000 900 2000 800 0 0 0 0
116 0 2 4000 900 3300 900 0 0 0 0
430 2 3 350 698 300 600 1100 600 0 0
433 1 1 1000 500 0 0 0 0 0 0
603 1 1 300 600 0 0 0 0 0 0

请问sql 语句怎么写才可以得到这种结果,谢谢

也就是把customerId中重复的记录,并且 type 不相同的,合并为一个记录

  • 写回答

3条回答

  • finallygo 2011-05-05 13:46
    关注

    首先要确定你重复的记录最多有多少条,我这里假设最多有两条重复customerid的记录
    select
    customerId,
    case when count(*)>=2 then 2 else max(type) end as type,
    sum(orderNum) as orderNum,
    SUBSTRING_INDEX(group_concat(shkd),',',1) as shkd,
    SUBSTRING_INDEX(group_concat(srmb),',',1) as srmb,
    SUBSTRING_INDEX(group_concat(ahkd),',',1) as ahkd,
    SUBSTRING_INDEX(group_concat(armb),',',1) as armb,
    SUBSTRING_INDEX(group_concat(shkd),',',-1) as shkd2,
    SUBSTRING_INDEX(group_concat(srmb),',',-1) as srmb2,
    SUBSTRING_INDEX(group_concat(ahkd),',',-1) as ahkd2,
    SUBSTRING_INDEX(group_concat(armb),',',-1) as armb2
    from tableName group by customerId

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择