【问题标题】:Transform rows into columns dynamically with mysql使用mysql动态将行转换为列
【发布时间】:2015-03-22 01:40:17
【问题描述】:

我有如下表结构

+----------------------------------------+ 身份证 | cmpgn_pic | cmpgn_dt | cmpgn_tg | +----------------------------------------+ |1 |努斯纳菲 | 2015-04-01 | 300000 | |2 |彼得布斯 | 2015-04-01 | 30000 | |3 |平 | 2015-04-02 | 700000 | |4 | HMKWAN | 2015-04-01 | 800000 | |5 |努斯纳菲 | 2015-04-05 | 400000 | |6 |努斯纳菲 | 2015-04-02 | 100000 | |7 | HMKWAN | 2015-04-10 | 75000 | |9 |平 | 2015-04-01 | 10000 | |10|平 | 2015-04-05 | 600000 | |11|努斯纳菲 | 2015-04-05 | 600000 | |12| HMKWAN | 2015-04-10 | 800000 | +----------------------------------------+

如何编写动态 sql 脚本以获得如下结果

+-------------------------------------------------- -------------------------------------------------- ----------------------------------------------------------+ | cmpgn_pic | 2015-04-01 | 2015-04-02 | 2015-04-03 | 2015-04-04 | 2015-04-05 | 2015-04-06 | 2015-04-07 | 2015-04-08 | 2015-04-09 | 2015-04-10 | +-------------------------------------------------- -------------------------------------------------- ----------------------------------------------------------+ | HMKWAN | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | |努斯纳菲 | 1 | 1 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | | PETEGSG | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |平 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |

我只能写静态mysql脚本如下

选择 cmpgn_pic,计数(id) 来自 t_prebook 按 1 分组

但我不知道如何在脚本中显示动态日期。我寻求您的帮助来解决我的问题。 提前谢谢你。

【问题讨论】:

    标签: mysql date


    【解决方案1】:

    我认为这个问题已经回答了一段时间,请参考这个答案。

    MySQL pivot row into dynamic number of columns

    编辑:MySQL 还没有 PIVOT 功能。一个可能的解决方法是创建一个过程,将每个唯一的日期实例附加为一个新列。

    【讨论】:

    猜你喜欢
    • 2021-06-20
    • 2022-01-21
    相关资源
    最近更新 更多