簡體   English   中英

是否對所有列都配置DISTINCT()?

[英]Hive DISTINCT() for all columns?

我想通過下面的玩具示例來澄清DISTINCT的工作原理。 假設您有一個像這樣的表,它有2列,只有2行數據:

SELECT * 
FROM table1;

colA   colB
A      B
A      C

假設我運行了SELECT DISTINCT查詢:

SELECT DISTINCT colA, colB 
FROM table1;

上面的查詢將返回以下哪個結果?

結果可能性1:

A      B
A      C

這種可能性的想法是,盡管在colA上值不是唯一的,但是當考慮到兩列時,整個返回的行都是唯一的或唯一的。 我不確定,因為SELECT DISTINCT colA, colBcolBcolAcolB之間的逗號的影響以及它是否將DISTINCT限制為colA

結果可能性2:

A      B

結果可能性3:

A      C

DISTINCT適用於完整的行。

A      B
A      C

上面兩行不同,因此結果將類似於結果可能性1,即

A   B
A   C 

也許這會有所幫助。 該查詢:

SELECT DISTINCT colA, colB 
FROM table1;

在功能上等效於:

SELECT colA, colB 
FROM table1
GROUP BY colA, colB;

它會返回所有出現在數據中的colA / colB對。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM