gpt4 book ai didi

sql - Hive sql : count and avg

转载 作者:行者123 更新时间:2023-12-04 22:33:56 25 4
gpt4 key购买 nike

我最近正在尝试学习 Hive,但我在使用 sql 咨询时遇到了问题。
我有一个包含一些信息的 json 文件。我想获得每个寄存器的平均值。更好的例子:

country  times
USA 1
USA 1
USA 1
ES 1
ES 1
ENG 1
FR 1

然后与下一个咨询:
select country, count(*) from data;

我获得:
country   times
USA 3
ES 2
ENG 1
FR 1

那么我应该下一个:
country   avg
USA 0,42 (3/7)
ES 0,28 (2/7)
ENG 0,14 (1/7)
FR 0,14 (1/7)

我不知道如何从第一个表中获得它。

我试过:
select t1.country, avg(t1.tm), 
from (
select country,count(*)as tm from data where not country is null group by country
) t1
group by t1.country;

但我的出局是错误的。

感谢帮助!! BR。

最佳答案

将每组计数除以总计数得到结果。使用 Sub-Query查找表中的记录总数

尝试这个

select t1.country, count(*)/IFNULL((select cast(count(*) as float) from data),0)
from data
group by t1.country;

关于sql - Hive sql : count and avg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40975955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com