对于最简单的情况,我们都提到:
select id from mytbl
group by id
Run Code Online (Sandbox Code Playgroud)
和
select distinct id from mytbl
Run Code Online (Sandbox Code Playgroud)
正如我们所知,它们会生成相同的查询计划,这些计划在某些项目中反复提及,例如哪个更好:Distinct或Group By
然而,在蜂巢中,前者只有一个减少任务,而后者有许多.
通过实验,我发现GROUP BY 比DISTINCT快10倍.
它们是不同的.
所以我学到的是:
无论如何,GROUP-BY并不比DISTINCT差,有时它更好.
我想知道:
1.如果这个结论是真的.
2.如果为真,我会将DISTINCT视为一种方便的逻辑方法,但为什么DISTINCT不采用GROUP-BY更好的实现?
3.如果不对,我会非常渴望知道它在大数据情况下的体面使用.
非常感谢你!!:)
我知道这只是一个非常简单的问题,很可能已经在某个地方得到了回答,但作为一个初学者,我仍然没有得到它并且正在寻找你的启示,请提前感谢你:
我有一个临时数据帧:
+----------------------------+---+
|host |day|
+----------------------------+---+
|in24.inetnebr.com |1 |
|uplherc.upl.com |1 |
|uplherc.upl.com |1 |
|uplherc.upl.com |1 |
|uplherc.upl.com |1 |
|ix-esc-ca2-07.ix.netcom.com |1 |
|uplherc.upl.com |1 |
Run Code Online (Sandbox Code Playgroud)
我需要的是删除主机列中的所有冗余项,换句话说,我需要获得最终的不同结果,如:
+----------------------------+---+
|host |day|
+----------------------------+---+
|in24.inetnebr.com |1 |
|uplherc.upl.com |1 |
|ix-esc-ca2-07.ix.netcom.com |1 |
|uplherc.upl.com |1 |
Run Code Online (Sandbox Code Playgroud)