如何用MYSQL 做 Pivot Table

如何用MYSQL 做 Pivot Table,第1张

这很简单啊! 在Windows下,假如你的MySQL装在 D:\MySQL 就可以这样: 先切换到它的bin目录 cd D:\MySQL\bin\ D:\MySQL\bin>mysql -u root -p 接着输入你的root密码 接下来你就可以创建数据库、创建用户、创建修改表之类的 *** 作(常用命令如下)

ntile mysql 支持

继续介绍几个序列函数:

NTILE,ROW_NUMBER,RANK和DENSE_RANK

环境信息:

Hive版本为apache-hive-0.14.0-bin

Hadoop版本为hadoop-2.6.0

Tez版本为tez-0.7.0

数据:

P088888888888,2016-02-10,1

P088888888888,2016-02-11,3

P088888888888,2016-02-12,1

P088888888888,2016-02-13,9

P088888888888,2016-02-14,3

P088888888888,2016-02-15,12

P088888888888,2016-02-16,3

P066666666666,2016-02-10,6

P066666666666,2016-02-11,2

P066666666666,2016-02-12,1

P066666666666,2016-02-13,9

P066666666666,2016-02-14,2

P066666666666,2016-02-15,20

P066666666666,2016-02-16,2

导入数据到Hive表中:

load data localinpath '/home/hadoop/testhivedata/windows_func.txt' overwrite into tablewindows_func

NTILE

NTILE(n),用于将分组数据按照顺序切分成n片,返回当前切片

NTILE不支持ROWS BETWEEN,比如 NTILE(2) OVER(PARTITION BY polno ORDER BY createtime ROWSBETWEEN 3 PRECEDING AND CURRENT ROW)如果切片不均匀,默认增加第一个切片的分布。

SELECT

polno,

createtime,

pnum,

NTILE(2) OVER(PARTITION BY polno ORDER BY createtime) AS rn1,--分组内将数据分成2片

NTILE(3) OVER(PARTITION BY polno ORDER BY createtime) AS rn2, --分组内将数据分成3片

NTILE(4) OVER(ORDER BY createtime) AS rn3 --将所有数据分成4片

FROM windows_func ORDER BY polno,createtime


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8608971.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存