广告
返回顶部
首页 > 资讯 > 数据库 >如何实现mysql行转列
  • 894
分享到

如何实现mysql行转列

2024-04-02 19:04:59 894人浏览 独家记忆
摘要

下面一起来了解下如何实现Mysql行转列,相信大家看完肯定会受益匪浅,文字在精不在多,希望如何实现mysql行转列这篇短内容是你想要的。 原始数据如下:mysql> select

下面一起来了解下如何实现Mysql行转列,相信大家看完肯定会受益匪浅,文字在精不在多,希望如何实现mysql行转列这篇短内容是你想要的。 

原始数据如下:


mysql> select id,sdkname,sid,date,total_count from u1ge_query_log;

+------+----------------+------+------------+-------------+

| id   | sdkname        | sid  | date       | total_count |

+------+----------------+------+------------+-------------+

|  521 | ICC_ICCGAME(3) | 11   | 2017-05-01 |           0 |

|  522 | ICC_ICCGAME(3) | 11   | 2017-05-02 |           0 |

|  523 | ICC_ICCGAME(3) | 11   | 2017-05-03 |           1 |

|  531 | ICC_HUAWEI     | 11   | 2017-05-01 |           0 |

|  532 | ICC_HUAWEI     | 11   | 2017-05-02 |           0 |

|  533 | ICC_HUAWEI     | 11   | 2017-05-03 |           0 |

|  541 | ICC_ICCGAME(0) | 11   | 2017-05-01 |           0 |

|  542 | ICC_ICCGAME(0) | 11   | 2017-05-02 |           0 |

|  543 | ICC_ICCGAME(0) | 11   | 2017-05-03 |           0 |

|  551 | ICC_UC         | 11   | 2017-05-01 |           0 |

|  552 | ICC_UC         | 11   | 2017-05-02 |           0 |

|  553 | ICC_UC         | 11   | 2017-05-03 |           0 |

|  561 | ICC_QIHOO      | 11   | 2017-05-01 |           0 |

|  562 | ICC_QIHOO      | 11   | 2017-05-02 |           0 |

|  563 | ICC_QIHOO      | 11   | 2017-05-03 |           0 |

|  571 | ICC_VIVO       | 11   | 2017-05-01 |           0 |

|  572 | ICC_VIVO       | 11   | 2017-05-02 |           0 |

|  573 | ICC_VIVO       | 11   | 2017-05-03 |           0 |

|  581 | ICC_GioNEE     | 11   | 2017-05-01 |           0 |

|  582 | ICC_GIONEE     | 11   | 2017-05-02 |           0 |

|  583 | ICC_GIONEE     | 11   | 2017-05-03 |           0 |

要求如下显示:

如何实现mysql行转列


此处用到了行转列,由于列不固定,考虑使用动态sql

SET @d=(select GROUP_CONCAT('if(sdkname=\'',sdkname,'\' ,total_count,0) as `',sdkname,'`')
 FROM (SELECT DISTINCT sdkname FROM pcik_log_dep.u1ge_query_log ) A); 

SET @sql=CONCAT('select date,',@d,'from pcik_log_dep.u1ge_query_log group by date');
  
PREPARE sdtmt from @sql;
EXECUTE sdtmt;
deallocate prepare sdtmt;


------------+---------+-----------+-------------+------------+------------+----------------+----------------+------------+-----------+----------+-----------+--------+----------+------------+

| date       | icctest | ICC_BaiDU | ICC_COOLPAD | ICC_GIONEE | ICC_HUAWEI | ICC_ICCGAME(0) | ICC_ICCGAME(3) | ICC_LENOVO | ICC_MEIZU | ICC_OPPO | ICC_QIHOO | ICC_UC | ICC_VIVO | ICC_XIAOMI |

+------------+---------+-----------+-------------+------------+------------+----------------+----------------+------------+-----------+----------+-----------+--------+----------+------------+

| 2017-05-01 |       0 |         0 |           0 |          0 |          0 |              0 |              0 |          0 |         0 |        0 |         0 |      0 |        0 |          0 |

| 2017-05-02 |       0 |         0 |           0 |          0 |          0 |              0 |              0 |          0 |         0 |        0 |         0 |      0 |        0 |          0 |

| 2017-05-03 |       0 |         0 |           0 |          0 |          0 |              0 |              1 |          0 |         0 |        0 |         0 |      0 |        0 |          0 |

| 2017-05-04 |       0 |         0 |           0 |          0 |          0 |              0 |           4380 |          0 |         0 |        0 |         0 |      0 |        0 |          0 |

| 2017-05-05 |       0 |         0 |           0 |          0 |          0 |              0 |           5126 |          0 |         0 |        0 |         0 |      0 |        0 |          0 |

| 2017-05-06 |       0 |         0 |           0 |          0 |          0 |              0 |           5571 |          0 |         0 |        0 |         0 |      0 |        0 |          0 |

| 2017-05-07 |       0 |         0 |           0 |          0 |          0 |              0 |           5888 |          0 |         0 |        0 |         0 |      0 |        0 |          0 |

| 2017-05-08 |       0 |         0 |           0 |          0 |          0 |              0 |           6135 |          0 |         0 |        0 |         0 |      0 |        0 |          0 |

| 2017-05-09 |       0 |         0 |           0 |          0 |          0 |              0 |           6199 |          0 |         0 |        0 |         0 |      0 |        0 |          0 |

| 2017-05-10 |       0 |         0 |           0 |          0 |          0 |              0 |           6199 |          0 |         0 |        0 |         0 |      0 |        0 |          0 |

+------------+---------+-----------+-------------+------------+------------+----------------+----------------+------------+-----------+----------+-----------+--------+----------+------------+

10 rows in set (0.00 sec)

 

看完如何实现mysql行转列这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的数据库栏目。

您可能感兴趣的文档:

--结束END--

本文标题: 如何实现mysql行转列

本文链接: https://www.lsjlt.com/news/36213.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何实现mysql行转列
    下面一起来了解下如何实现mysql行转列,相信大家看完肯定会受益匪浅,文字在精不在多,希望如何实现mysql行转列这篇短内容是你想要的。 原始数据如下:mysql> select ...
    99+
    2022-10-18
  • MySQL实现行列转换
    实际应用中,会遇到需要把表的某些行转换成列,或者把列转换成行的情况。比如一张表在数据库中是这样的: 图1 但是,需要的结果可能是这样: 图2 这个时候就得行列转换了。 1.行转列的几种方法 1.1 case... w...
    99+
    2022-07-08
    MySQL 行列转换
  • SQL如何实现行转列和列转行
    这篇文章给大家分享的是有关SQL如何实现行转列和列转行的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。行列互转,是一个经常遇到的需求。实现的方法,有case when方式和2005...
    99+
    2022-10-18
  • mysql实现行转列的方法
    这篇文章主要介绍mysql实现行转列的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql实现行转列的方法:1、用cross join的方式实现,代码为【cross join...
    99+
    2022-10-18
  • mysql 列转行
    一、列转行 mysql 数据库中,我们可能遇到将数据库中某一列的数据(多个值,按照英文逗号分隔),转化为多行数据(即一行转多行),然后join关联表,再转化为一行数据 如:有两张表,一用户表,一张学科表,需要查询学科表中的用户姓名 用...
    99+
    2023-08-31
    mysql 数据库 sql
  • mysql 行转列
    以下是其中比较常见的几种方法: 使用GROUP_CONCAT函数 可以使用GROUP_CONCAT函数将多行数据合并为一行,并以逗号或其他分隔符进行分隔。通过SELECT语句和GROUP BY子句,可以将数据行转换为列。具体语法如下...
    99+
    2023-08-20
    mysql 数据库 sql
  • 学习mysql 如何行转列与列传行
    目录一、行转列—case+groupby二、列转行——union一、行转列— case+group by mysql>...
    99+
    2022-11-13
  • mysql的行如何转为列
    这篇“mysql的行如何转为列”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysql的行...
    99+
    2022-10-19
  • MySQL中怎么实现行转列操作
    本篇文章给大家分享的是有关MySQL中怎么实现行转列操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  表的基本结构  改造前表结构:  C...
    99+
    2022-10-18
  • C# DataGridView行列转换如何实现
    这篇文章主要讲解了“C# DataGridView行列转换如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C# DataGridView行列转换如何实现”吧!初始表...
    99+
    2023-07-05
  • sql语句如何实现行转列
    这篇文章将为大家详细讲解有关sql语句如何实现行转列,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言一般在做数据统计的时候会用到行转列,假如要统计学生的成绩,数据库里查...
    99+
    2022-10-18
  • 怎么在SQL中实现行转列和列转行
    怎么在SQL中实现行转列和列转行?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。行列转换就是如下图所示两种展示形式的互相转换行转列假如我们有...
    99+
    2022-10-18
  • mysql中怎么实现行列转换操作
    这篇文章将为大家详细讲解有关mysql中怎么实现行列转换操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。create table tx(id int pr...
    99+
    2022-10-18
  • MySQL实验--静态行转列->动态行转列->存储过程使用行转列
    概述 今天主要用一个实验来介绍一下在使用行转列的过程及相关实验。下面演示一下。 创建表 这里我用一个比较简单的例子来说明,也是行转列的经典例子,就是学生的成绩三张表:学生表、课程表、成绩表 1、学生表 就简单一点,学生学号...
    99+
    2016-08-19
    MySQL实验--静态行转列->动态行转列->存储过程使用行转列
  • MySQL行转列详情
    目录一、行转列SQL写法二、如果领导@你,让你在结果集中加上总数列呢?三、领导又双叒叕@你改需求四、结束语附录:创建表结构&测试数据SQL  MySQL行...
    99+
    2022-11-12
  • Mysql行转列函数
    group_concat() 例: select oid from Test;  select group_concat(oid) from Test; 来源地址:https://blog.csd...
    99+
    2023-09-02
    mysql sql mybatis
  • 一文弄懂MYSQL如何列转行
    目录一、需求:二、如何实现1)首先看我们的静态SQL2)那么就有人问了,如果我有100门课程不是要写100次名称,这也太麻烦了?3)这样每次都写一长串sql也很麻烦?总结一、需求: 有三张表,学生表、成绩表和课程表,我们...
    99+
    2022-06-16
    mysql列转行逗号隔开 mysql列转行sql mysql行列转换函数
  • MySQL中的经典面试题——行转列(列转行)
    目录 1、简介:   1. 行转列(Pivot): 2. 列转行(Unpivot): 2、行转列,列转行的思想 3、实现 3.1、实现行转列 3.2、总结(行转列)实现的两种方法   3.3、实现(列转行)  3.4、...
    99+
    2023-10-01
    mysql 数据库 sql
  • MySQL中列转行和行转列总结解决思路
    目录引言列转行行转列总结引言 在学习sql中遇到了列转行和行转列的题目,这里总结一下如何在对应的情景下解决不同的题目; 列转行 创建一个表stu_score_01: SET NAMES utf8mb4; SET FORE...
    99+
    2023-01-30
    MySQL列转行和行转列 MySQL列转行 MySQL行转列
  • SQL 如何实现动态的行列转置
    Oracle 和新版 Mysql 里有 pivot 实现行列转置,但实际处理数据时,会碰到一些更复杂的转置情况,pivot 也搞不定,比如: 想转置成: 这个难点在于事先不知道有多少种收入来源,而且每个人的收入来源种类各不相同。...
    99+
    2015-04-20
    SQL 如何实现动态的行列转置
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作