【发布时间】:2021-03-23 17:43:12
【问题描述】:
我正在创建一个聚合表,例如
create table1 as select
country ,
type_of_order,
count(distinct order_no) as total_orders
from table2
group by country , type_of_order;
现在当我获取查询时
select sum(total_orders) from table1 group by country;
我得到了不同的 total_orders 结果,但是当我创建聚合表而不放置 type_of_order 维度时,我得到了不同的结果。 我需要匹配我的数据集
我相信 groupby 正在创建组,并且我的数据在组的基础上变得不同。我需要维护 group by 子句
谁能帮我用不同的方式在蜂巢中做同样的事情
注意:-HIVE 不支持子查询
【问题讨论】:
-
但它实际上是 5 个不同的值:1.(单点)和 1-4。聚合后也应该有两行,因为你有两种不同的类型,你说的是输出中的单行???
-
如果您要汇总与两行不同的计数,那么这是错误的。因为不同的计数不是累加的。
-
您不能只将两个计数相加。不可能的。只有像 HyperLogLog 这样的草图算法才能对不同计数求和,以便快速逼近大数据上的不同计数。
-
你是对的,你能建议我一种方法吗?
-
不清楚你在做什么。计数不同不是加法 - 把它当作一个公理。如果您想获得准确的结果以及一些聚合,请在最后一个聚合中计算不同的值。为了帮助您,我需要了解详细信息:描述所有场景,您想要和查询的确切结果,为什么要汇总不同的计数,也许可以重写。