SQL行转列与列转行的方法

SQL行转列与列转行的方法

本文小编为大家详细介绍“SQL行转列与列转行的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“SQL行转列与列转行的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

1.数据集

SQL行转列与列转行的方法

+---+----------+|id|login_date|+---+----------+|01|2021-02-28||01|2021-03-01||01|2021-03-02||01|2021-03-04||01|2021-03-05||01|2021-03-06||01|2021-03-08||02|2021-03-01||02|2021-03-02||02|2021-03-03||02|2021-03-06||03|2021-03-06|+---+----------+

以"连续登录"中的数据为例:

selectid,concat_ws(',',collect_list(login_date))cwfromdatagroupbyid;

结果:

+---+----------------------------------------------------------------------------+
|id |cw |
+---+----------------------------------------------------------------------------+
|01 |2018-02-28,2018-03-01,2018-03-02,2018-03-04,2018-03-05,2018-03-06,2018-03-08|
|02 |2018-03-01,2018-03-02,2018-03-03,2018-03-06 |
|03 |2018-03-06 |
+---+----------------------------------------------------------------------------+

以上面SQL生成的数据为基准,执行下列SQL:

selectid,login_datefromtlateralviewexplode(split(cw,','))bASlogin_date;

结果:

+---+----------+
|id |login_date|
+---+----------+
|01 |2018-02-28|
|01 |2018-03-01|
|01 |2018-03-02|
|01 |2018-03-04|
|01 |2018-03-05|
|01 |2018-03-06|
|01 |2018-03-08|
|02 |2018-03-01|
|02 |2018-03-02|
|02 |2018-03-03|
|02 |2018-03-06|
|03 |2018-03-06|
+---+----------+

读到这里,这篇“SQL行转列与列转行的方法”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注恰卡编程网行业资讯频道。

发布于 2022-03-03 21:27:09
收藏
分享
海报
0 条评论
37
上一篇:python中怎么使用类方法和静态方法 下一篇:Entity Framework中怎么使用配置伙伴创建数据库
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码