使用Hive SQL按fruit分组获取inventory最小、need最小及to_buy最大值
实现水果分组聚合的Hive SQL方案
没问题,这是能满足你需求的Hive SQL语句,我还补充了一些细节说明帮你更好地理解:
SELECT fruit, MIN(inventory) AS `inventory(min)`, MIN(need) AS `need(min)`, MAX(to_buy) AS `to_buy(max)` FROM your_table_name -- 记得把这里替换成你实际使用的表名 GROUP BY fruit;
关键细节说明:
GROUP BY fruit:按照水果名称分组,保证每个水果只会输出一行聚合后的结果- 聚合函数的使用:
MIN(inventory):计算每组中库存的最小值,用AS指定别名inventory(min)和你期望的结果列名一致MIN(need):计算每组中需求的最小值,别名设为need(min)MAX(to_buy):计算每组中采购量的最大值,别名设为to_buy(max)
- 关于前导零的注意点:如果你的
inventory或need列是字符串类型(比如示例里的01),Hive的MIN()会按字符串字典序比较。如果需要按数值逻辑取最小值,建议先转成数值类型再聚合,比如MIN(CAST(inventory AS INT)),但这样结果会是不带前导零的数值;如果必须保留前导零格式,可以后续用LPAD这类函数格式化回字符串。
内容的提问来源于stack exchange,提问作者jumpman8947
相关产品推荐
相关产品推荐

