看看這些。Hive通過'distinct'子句給出記錄,但'count'爲0
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年5月4日’存在。」
但第二個和第三個查詢否認。
怎麼可能?
這表明底層數據正在改變。這些查詢結果不應該發生在靜態數據庫上。 –
您是否認爲運行時間的差異可能很大?它幾乎就好像前兩個查詢確實做了一些事情,而第三個查詢並沒有打擾。 –
'show partitions A_TABLE' - 這是什麼輸出? –