我可以区分配置单元中的每一列吗?

6g8kf2rb  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(304)

我想计算Hive中几列的基数。
例如,这张table就像

------------------------------------------
|   A     |       B      |   C  |    D   |
------------------------------------------
| Windows | C:\Users\aa  |   0  |  1234  |
------------------------------------------
| Windows | D:\Videos    |   1  |  2345  |
------------------------------------------
| Linux   | /usr/local   |   0  |  1234  |
------------------------------------------
|  OS X   | /Users/aa    |   0  |  5678  |
------------------------------------------

a、c、d列的基数是3、2、3。
最简单的解决办法是跑步 SELECT DISTINCT 在每列上。然而,这似乎是一个可怕的方式。那么,是否可以只扫描一次表来计算这些值呢?

jum4pzuy

jum4pzuy1#

如果您只需要每个列的唯一计数,则可以使用 count distinct ```
select
count(distinct a),
count(distinct c),
count(distinct d)
from mytable

相关问题