SQL / HIVE - 不同计数查询 - SELECT COUNT(DISTINCT列,..)与SELECT COUNT(*)与DISTINCT记录的子查询

时间:2016-07-12 15:27:20

标签: sql hadoop hive hiveql

在HIVE中,我尝试用2种方法计算不同的行数,

  1. SELECT COUNT (*) FROM (SELECT DISTINCT columns FROM table);

  2. SELECT COUNT (DISTINCT columns) FROM table;

  3. 两者都产生不同的结果。 第一个查询的计数大于第二个查询的计数。 他们的工作方式有何不同? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

对您的查询稍作更改,即为您的子查询命名例如:

SELECT COUNT (*) FROM (SELECT DISTINCT columns FROM table) myquery;

答案 1 :(得分:0)

hive中尝试一下:

SELECT COUNT (DISTINCT nvl(columns,'NA')) FROM table;

或:

SELECT COUNT (DISTINCT coalesce(columns,'NA')) FROM table;

以上查询输出将与以下相同:

SELECT COUNT (*) FROM (SELECT DISTINCT columns FROM table);