hivesql的计数
时间: 2023-08-13 09:09:20 浏览: 129
在Hive SQL中,有多种方法可以进行计数操作。其中,常用的方法是使用COUNT函数。例如,要统计某一列的总行数,可以使用以下语句:
SELECT COUNT(*) FROM table_name;
如果要统计某一列的去重数,可以使用COUNT(DISTINCT column_name)函数。然而,当数据量很大时,使用COUNT(DISTINCT)可能会非常慢,因为它只会有很少的reducer来处理。在这种情况下,可以使用GROUP BY子句来改写查询语句,如下所示:
SELECT COUNT(1) FROM (SELECT column_name FROM table_name GROUP BY column_name) tmp;
这样的写法会启动两个MR job,所以要确保数据量大到启动job的开销远小于计算耗时,才考虑使用这种方法。另外,当数据集很小或者key的倾斜比较明显时,使用GROUP BY可能会比使用DISTINCT慢。\[2\]\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [Hive调优策略之SQL优化](https://blog.csdn.net/weixin_52851967/article/details/127371719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文