gpt4 book ai didi

sql - Hive通过 ‘distinct’子句给出一条记录,但是 ‘count’是0

转载 作者:可可西里 更新时间:2023-11-01 14:52:30 26 4
gpt4 key购买 nike

看看这些。

0: jdbc:hive2> select distinct A_COL from A_TABLE where A_COL='1999-05-04';
+-------------+--+
| A_COL |
+-------------+--+
| 1999-05-04 |
+-------------+--+
1 row selected (6.127 seconds)

0: jdbc:hive2> select count(*) from A_TABLE where A_COL='1999-05-04';
+------+--+
| _c0 |
+------+--+
| 0 |
+------+--+
1 row selected (4.206 seconds)

0: jdbc:hive2> select * from A_TABLE where A_COL='1999-05-04';
+-------+---------------
| A_COL | blabla...
+-------+----------
+-------+----------
No rows selected (0.292 seconds)

我认为第一个查询的意思是“至少存在一条 A_COL 值为‘1999-05-04’的记录”。
但是第二个和第三个查询否认了这一点。

这怎么可能?

最佳答案

我不知道您的表是否在 A_COL 列上有分区,但情况可能是这样。所以 distinct 显示了它的分区值,但表没有实际数据:

hive> CREATE TABLE test_2(B_COL string) PARTITIONED BY (A_COL string);
OK
Time taken: 1.182 seconds

hive> ALTER TABLE test_2 ADD PARTITION (A_COL='2016-07-27');
OK
Time taken: 0.285 seconds

hive> select count(*) from test_2 where A_COL='2016-07-27';
OK
0
Time taken: 35.016 seconds, Fetched: 1 row(s)

hive> select * from test_2 where A_COL='2016-07-27';
OK
Time taken: 0.165 seconds

hive> select distinct(A_COL) from test_2;
2016-07-27
Time taken: 24.528 seconds, Fetched: 1 row(s)

关于sql - Hive通过 ‘distinct’子句给出一条记录,但是 ‘count’是0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38610110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com