问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

hive sql 怎么分组统计

发布网友 发布时间:2022-05-07 02:01

我来回答

2个回答

懂视网 时间:2022-05-07 06:22

hive中使用标准sql实现分组内排序 在hive中,想要实现分组内排序,一般都是自己写udf实现oracle中分析函数row_number() over(partition)的功能,如果不使用自定义udf,仅使用标准sql实现的话,毫无性能可言,仅做实验而已。 方便起见,以下语句为oracle中语句

hive中使用标准sql实现分组内排序

在hive中,想要实现分组内排序,一般都是自己写udf实现oracle中分析函数row_number() over(partition)的功能,如果不使用自定义udf,仅使用标准sql实现的话,毫无性能可言,仅做实验而已。

方便起见,以下语句为oracle中语句,但都属于标准sql,在hive中亦可:

Sql代码

CREATE TABLE lxw_t (user_id VARCHAR2(20),

class VARCHAR2(20),

score NUMBER

);

Sql代码

INSERT INTO liuxiaowen.lxw_t VALUES ('user_1','语文','90');

INSERT INTO liuxiaowen.lxw_t VALUES ('user_1','数学','86');

INSERT INTO liuxiaowen.lxw_t VALUES ('user_1','英语','96');

INSERT INTO liuxiaowen.lxw_t VALUES ('user_1','体育','77');

INSERT INTO liuxiaowen.lxw_t VALUES ('user_2','语文','88');

INSERT INTO liuxiaowen.lxw_t VALUES ('user_2','数学','65');

INSERT INTO liuxiaowen.lxw_t VALUES ('user_2','英语','67');

INSERT INTO liuxiaowen.lxw_t VALUES ('user_2','体育','98');

commit;

Sql代码

SELECT x.user_id,x.class,x.score,COUNT(1) AS seq

FROM (

SELECT a.*,b.score score2 FROM

liuxiaowen.lxw_t a ,

liuxiaowen.lxw_t b

WHERE a.user_id = b.user_id (+)

) x

WHERE x.score2 >= x.score --按照成绩由高到低排列

--WHERE x.score >= x.score2 --按照成绩由低到高排列

GROUP BY x.user_id,x.class,x.score

order BY 1,4

按照成绩由高到低排列的结果如下:

Sql代码

USER_ID CLASS SCORE SEQ

user_1 英语 96 1

user_1 语文 90 2

user_1 数学 86 3

user_1 体育 77 4

user_2 体育 98 1

user_2 语文 88 2

user_2 英语 67 3

user_2 数学 65 4

按照成绩由低到高排列的结果如下:

Sql代码

USER_ID CLASS SCORE SEQ

user_1 体育 77 1

user_1 数学 86 2

user_1 语文 90 3

user_1 英语 96 4

user_2 数学 65 1

user_2 英语 67 2

user_2 语文 88 3

user_2 体育 98 4

热心网友 时间:2022-05-07 03:30

select sno,type ,count(type)from table group by sno,type

这是竖的,横的下面

select sno,sum(case when type='a' then 1 else 0 end) as t_a,sum(case when type='b' then 1 else 0 end) as t_b,sum(case when type='c' then 1 else 0 end) as t_c from table group by sno
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑文件编辑好如何发送给微信如何把电脑上的文件发到微信上 笔记本电脑上的文件发送到微信怎么把电脑里的文件传到手机微信 我每天早晨吃米糊放白糖有害吗? 吃糖太多对我有好处么! 适合明年工作计划开头的句子 让人耳目一新的年度工作计划开头句子锦集五十四句 个人年度工作计划开头优美句子 让上司眼前一亮的工作计划开头语收藏四十一句 工作计划开头 怎么写工作计划开头 新干线0系电动列车的运行设备 中秋节的贺卡 哪个大神知道如何在win10系统上安装UG860 请问我的win10系统安装完ug4.0出现intialization error-UGI win10系统安装ug 4.0经常死机换什么输入法 ug4.0win10安装出现这问题怎样解决 win10可以装什么版本的ug,可以装4.0吗,怎么装 ugnx4.0 win10 64位安装起来为什么会显示这样呢。台式安装的都可以 就是笔记本上的不行 win10环境下如何安装ug4.0 各位大神win10能装ug4.0和8吗 ug4.0能装在WIN10上吗 北京信息科技大学的机械研究生和华东交通大学的机械研究生,北京、江西,很新、有些历史,调剂哪个好? 会计研究生华东交通大学和南京财经大学差别大吗?我今年考南财393分,但害怕被刷,去年有401被刷的,要... 华东交通大学电气学院研究生怎么样? 华东交通大学电气研究生难考吗?大概要多少分能稳进? 17考研土木专硕375,目前准备调剂,江苏科技大学,江苏大学,苏州科技大学,华东交通大学,安徽建筑大学 淘宝直播没有退出直播,扣了6分怎么办 大客车最怕什么投诉 举报客车超员最高奖500元,遇到这种情节你会举报吗? 滨海客车超载举报电话 举报客车超员最高奖500元,你觉得有必要吗? 乏味FARWAY医用冷敷贴是什么型号的面膜啊? 被骗了之后钱真的追不回来了嘛? 被骗是不是找不回来了? 我的钱被骗了报警了能不能把钱要回来 被电信诈骗的钱是不是就追不回来了 被网络诈骗报案半年了是不是追不回来了 网上被骗的钱,真的追不回来了吗? 网上受骗了,报警了,但是警察说钱可能追不回来了,我该怎么办? 网上被骗的钱是不是找不回来了? 被骗了钱要不回来吗? 我被骗了2万多块钱,现在人在*,如果被告人没有钱,是不是就要不回来了? 我被骗了也报警了一直没有消息怎么办是不是钱真追不回来了? 网上被骗3万多,报警后刑警说钱肯定追不回来,我该怎么办? hive查询sql必须加group by 吗 花呗借款没还,现在开通不了,怎样才能开通 急急急!麻烦知道花呗借呗没还完能带下来房子贷款吗 电动车充电器发烫和电池发烫是什么原因 电动自行车充电过程中充电器烫手怎么回事? 360全屋路由m5网速慢 用360路由器p2无线中继上家路由器,网速很慢而且时断时续,求解决。