之前遇到一个这样的小需求:数据表里面每一行里面存放的是每个用户每个因子的得分数(一个用户共有23个因子),而我们需要得到的报表是按用户为维度排列出每个用户的因子得分记录,其中每行记录显示的是该用户23个因子的得分记录值。

该需求是要实现将一张表里面相同ID的多行转换成一个ID一行多列的形式展现,如下图所示(该例子中的表名假定为A):

ID      SCORE                   ID           SCORE

1        10                            1             10,20

1        20                            2             30,20

2        30            转换为  3     15

2        20

3        15

(表A多行转一行)

Mysql的GROUP_CONCAT函数可以很好地帮我们解决这个问题,不需要通过程序端遍历去拼凑。这里简单记录下GROUP_CONCAT的使用。

完整语法如下:

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符‘])

以上述表A为例子:

要想获取到右边的展现形式,则可用下列语句获得。

select a.id,group_concat(score) as scoreStr from A a group by a.id;

默认获得的分隔符是“,”,如果想自定义分隔符,则用Separator,也可以使用DISTINCT对要链接的字段进行去重。具体参考语法格式。

Mysql官方文档:

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

原文:http://www.cnblogs.com/xujianfang/p/5923398.html

mysql group_concat去重_Mysql下GROUP_CONCAT使用相关推荐

  1. mysql group_concat去重_mysql 数据库group_concat函数的一些用法

    对于group_contact函数一般懂一点sql的人来说,并不算太陌生,它主要配合group by 使用,起着分组时,将涉及行的相应的字段串联成一个字段如下表a: 我们按照type分类,并将对应的名 ...

  2. mysql group函数_mysql中group_concat函数的使用

    一.group_concat函数的功能 将group by产生的同一个分组中的值连接起来,返回一个字符串结果. group_concat函数首先根据group by指定的列进行分组,将同一组的列显示出 ...

  3. mysql数据去重_mysql 数据去重

    数据库版本mysql5.5.10  操作工具navicate for mysql 插入数据重复了   用mysql语句去重 --  查询数量是否大于1 大于1  表示有重复数据 SELECT  cou ...

  4. mysql group_concat去重_mysql GROUP_CONCAT 函数 将相同的键的多个单元格合并到一个单元格...

    mysql GROUP_CONCAT 函数 将相同的键的多个单元格合并到一个单元格 MemberID MemberName FruitName -------------- ------------- ...

  5. mysql group_concat去重_MySQL group_concat() 函数用法

    MySQL group_concat() 函数用法 在使用 group by对数据进行分组后,如果需要对 select 的数据项进行字符串拼接,这时就需要用到group_concat()函数. 1.基 ...

  6. mysql中group_concat函数_MySQL中group_concat函数

    为什么我要学习该函数,我在做控制页面的权限的时候,没有使用Shiro框架[强烈推荐使用], 为了降低学习成本,暂时给学生过渡的想法,我需要控制到按钮级别的权限,我的想法是通过Jquery对我的页面中的 ...

  7. mysql函数截断_Mysql截断GROUP_CONCAT函数的并置结果

    我创建了一个视图,它使用GROUP_CONCAT来连接来自产品查询的结果,数据类型为"varchar(7)utf8_general_ci",名为concat_products. 问 ...

  8. mysql concat换行_Mysql 的 GROUP_CONCAT() 函数拼接串

    SELECT GROUP_CONCAT( ut.id_card ORDER BY ut.id_card DESC SEPARATOR ',' )   FROM `edu_user_train` ut  ...

  9. mysql命令去重_mysql去重的两种方法详解及实例代码

    mysql去重 方法一: 在使用MySQL时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数, ...

最新文章

  1. 重磅丨李飞飞亲自带队,谷歌AI中国中心今天正式成立
  2. Javascript MVC架构之旅
  3. flutter text 左对齐_Flutter基础篇之九-Text文本展示
  4. Linux 网络配置命令:ip、ss
  5. ecshop后台实现用ajax动态修改/更新用户评论的时间
  6. bread是可数还是不可数_​面包bread是可数名词还是不可数
  7. Cloud for Customer手机应用的deviceready事件是何时何处被抛出的
  8. 关于如何查看mysql版本及其端口号
  9. python列表逐行写入excel_python表格数据到excel-想问下python3怎么将列表数据逐行写入excel表格呢?...
  10. 亚马逊独霸美国安云计算未来十年订单;英伟达推出首个元宇宙平台;华为云、天翼云会合并吗?...
  11. LTE学习:下行参考信号的总结
  12. 百度之星2019决赛旅游记
  13. 关于我在《大话5G》这本书里学到了什么——5G和物联网不得不说的关系
  14. phpnow php升级,phpnow如何升级php版本
  15. 生物信息学python常用脚本_生物信息工程师必备的编程语言清单
  16. 【TWVRP】蚁群算法求解带时间窗的车辆路径规划问题【含Matlab源码 921期】
  17. git目录下object文件过大清理
  18. 【正点原子STM32】delay.c文件里关于fac_us=SystemCoreClock/8000000的讲解
  19. 什么是软链接, 什么是硬链接
  20. Android使用字体代替图标

热门文章

  1. Qt入门——三个臭皮匠顶个诸葛亮
  2. 编程中函数的返回值的定义问题的解决
  3. 转 ajax.dll 与 ajaxpro.dll的用法
  4. 批处理for命令详解(转) 批处理for命令详解
  5. bash脚本一条命令直接发送http请求
  6. 数据可视化组队学习:《Task04 - 文字图例尽眉目》笔记
  7. Hardware assisted virtualization and data execution protection must be enabled in the BIOS
  8. jvm垃圾收集器的发展史及回收算法
  9. 1053 Path of Equal Weight
  10. hdu-2066(Dijkstra)