最近遇到一需求
原始数据如下:
mysql> select> +------+----------------+------+------------+-------------+
|> +------+----------------+------+------------+-------------+
| 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 |
要求如下显示:
此处用到了行转列,由于列不固定,考虑使用动态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)
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com