要在Hive中按组计算中位数和平均值,可以使用Hive的内置函数和窗口函数来实现。以下是一个示例代码,使用了percentile_approx
函数计算中位数,以及avg
函数计算平均值。
-- 创建示例表
CREATE TABLE sales (
product STRING,
category STRING,
price INT
);
-- 插入示例数据
INSERT INTO sales VALUES
('product1', 'category1', 100),
('product2', 'category1', 200),
('product3', 'category2', 300),
('product4', 'category2', 400),
('product5', 'category3', 500),
('product6', 'category3', 600);
-- 按组计算中位数和平均值
SELECT
category,
percentile_approx(price, 0.5) AS median,
avg(price) AS average
FROM sales
GROUP BY category;
该示例中创建了一个名为sales
的表,包含product
、category
和price
三个字段。然后插入了一些示例数据。
在查询中,使用percentile_approx
函数计算每个组的中位数,该函数接受两个参数,第一个是要计算中位数的列,第二个是要计算的百分位数,这里设为0.5,即计算中位数。使用avg
函数计算平均值。最后使用GROUP BY
子句按category
字段进行分组。
执行该查询后,将会得到每个组的中位数和平均值的结果。
上一篇:按组计算滚动总和
下一篇:按组计算后包含缺失值的列数