group by having用法(GROUP BY语句及HAVING语句怎么用)

发布时间:2025-12-10 22:56:50 浏览次数:1

GROUPBY语句

创建一个股价交易表
CREATEEXTERNALTABLEIFNOTEXISTSstocks(
exchangeSTRING,
symbolSTRING,
ymdSTRING,
price_openFLOAT,
price_highFLOAT,
price_lowFLOAT,
price_closeFLOAT,
volumeINT,
price_adj_colseFLOAT)
ROWFORMATDELIMITEDFIELDSTERMINATEDBY','
LOATION'/data/stocks';

eg:按照年份对股票记录进行分组,然后计算每年的平均收盘价
hive>SELECTyear(ymd),avg(price_close)FROMstocks
>WHEREexchange='NASDAQ'ANDsymbol='AAPL'
>GROUPBYyear(ymd);
198425.57
198520.54
198632.46
198753.89
198841.66
198937.56
199052.50
...

HAVING语句
HAVING子句允许我们通过一个简单语法完成原本需要通过子查询才能对GROUPBY语句产生分组进行条件过滤的任务。

eg:如下是对前面的查询语句增加一个HAVING语句来限制输出结果中年平均收盘价要大于50.0
hive>SELECTyear(ymd),avg(price_close)FROMstocks
>WHEREexchange='NASDAQ'ANDsymbol='AAPL'
>GROUPBYyear(ymd)
>HAVINGavg(price_close)>50.0;
198753.89
199052.50
...

如果没使用HAVING子句,那么这个查询将需要使用一个嵌套子查询:
hive>SELECTs2.year,s2.avgFROM
>(SELECTyear(ymd)ASyear,avg(price_close)ASavgFROMstocks
>WHEREexchange='NASDAQ'ANDsymbol='AAPL'
>GROUPBYyear(ymd))s2
>WHEREs2.avg>50.0;
198753.89
199052.50
...

感谢各位的阅读,以上就是“GROUP BY语句及HAVING语句怎么用”的内容了,经过本文的学习后,相信大家对GROUP BY语句及HAVING语句怎么用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是本站,小编将为大家推送更多相关知识点的文章,欢迎关注!

group by having用法
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477