• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

hive 百分比统计

Sql admin 3年前 (2017-05-19) 6133次浏览 0个评论 扫描二维码

在 hive 查询中关于聚合和统计函数中涉及到百分比函数,比如 PERCENT_RANK,不过这都是依据某个字段行数统计,有些时候我们是需要统计某个字段的当前值除以这个字段值总和来代表相应的百分比,这个目前没有直接的 func 来完成,但是在实际的数据抽取过程中又会用到,所以今天碰到这个问题卡了一下,不过还是解决了,记录一下
下面给出在 mysql 上的实际结果,跟 hive 结果是一致的,因为阿里云 ecs 上没有安装 hive 所以就用 mysql 代替了
 

mysql> create database t;
Query OK, 1 row affected (0.01 sec)

mysql> use t;
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> create table test(id int,num int);
Query OK, 0 rows affected (0.04 sec)

mysql> insert into table test values(1,4);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table test values(1,4)' at line 1
mysql> insert into  test values(1,4);
Query OK, 1 row affected (0.10 sec)

mysql> insert into  test values(2,6);
Query OK, 1 row affected (0.01 sec)

mysql> select id,num/b.d from  (select sum(num)d from test)b,test ;
+------+---------+
| id   | num/b.d |
+------+---------+
|    1 |  0.4000 |
|    2 |  0.6000 |
+------+---------+
2 rows in set (0.00 sec)

mysql> 


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明hive 百分比统计
喜欢 (4)
admin
关于作者:
互联网行业码农一枚/业余铲屎官/数码影音爱好者/二次元

您必须 登录 才能发表评论!