【发布时间】:2014-06-20 21:28:14
【问题描述】:
如果我有一个带有重复 ID 的表,如果我使用 GROUP BY id 和使用 SELECT DISTINCT(id) 一样,我会得到相同的结果,对吧?
那么我什么时候应该更喜欢一种选择呢?
【问题讨论】:
-
不需要将列和/或表达式包装在括号中;
DISTINCT关键字适用于整个 SELECT 列表。id周围的括号不会影响查询结果或执行计划。 -
group by更通用。distinct真的只是一个简写。真正需要它的唯一时间是当您执行select distinct *时,因为不允许使用group by *。也就是说,首先要专注于学习和使用group by。 -
...虽然
DISTINCT *看起来毫无意义。 @doub1ejack 通常,在没有任何聚合函数的情况下,不应将 GROUP BY 用作 DISTINCT 的替代品。在某些情况下,它可能会产生误导性结果。