![]() |
1
277
它们本质上是等价的(事实上,有些数据库就是这样实现的)
如果其中一个跑得更快,它会
如果有疑问,请测试! |
![]() |
2
106
如果你有一个索引
如果没有,则使用
把你的职业分类
|
![]() |
3
23
对于单列上的DISTINCT与单列上的GROUP BY的情况,上述所有答案都是正确的。 但是,如果您在查询中选择了多个列,则DISTINCT本质上是不同的!因为在本例中,它将比较所有行的所有列,而不仅仅是一列。 因此,如果您有类似以下内容:
认为DISTINCT关键字通过指定的第一列来区分行是一个常见错误,但DISTINCT是一个通用关键字。 因此,人们你必须小心,不要认为上面的答案在所有情况下都是正确的。。。你可能会感到困惑,并得到错误的结果,而所有你想要的是优化! |
![]() |
4
17
尽可能选择最简单和最短的答案——DISTINCT似乎更符合您的要求,因为它将为您提供您所需要的答案,而且仅此而已! |
![]() |
5
8
在postgres中,well distinct有时比group by慢(不知道其他数据库)。 测试示例:
http://www.pgsql.cz/index.php/PostgreSQL_SQL_Tricks_I 所以要小心…:) |
![]() |
6
7
Group by比Distinct昂贵,因为Group by对结果进行排序,而Distinct避免排序。但是如果你想让分组产生与distinct相同的结果,就给它一个例子 按空排序 ..
等于
|
![]() |
7
5
比较:
第二个查询额外提供了“usingfilesort”。 |
![]() |
8
3
MySQL
, "
|
![]() |
9
3
经过大量测试,我们得出结论,分组比分组更快
opnamegroep_实习生
从…起
总计635秒0.0944秒
选择sql\u no\u缓存
独特(opnamegroep_实习生)
从…起
总共635秒,0.2117秒(几乎慢100%) 韦尔盖夫货车记录0-29条(总计635条,查询duurde 0.3468秒) |
![]() |
10
2
在某些情况下,您必须使用GROUP BY,例如,如果您想获得每个雇主的员工人数:
在这种情况下
|
![]() |
11
2
或尝试 SET STATISTICS TIME (Transact-SQL)
它只显示解析、编译和执行每条语句所需的毫秒数,如下所示:
|
![]() |
12
1
这不是规则 对于每个查询。。。。请分别尝试,然后按…分组。。。比较完成每个查询的时间并使用更快的。。。。 在我的项目中,有时我使用group by和其他不同的方法 |
![]() |
13
0
如果您不必执行任何组函数(sum、average等,以防向表中添加数字数据),请使用SELECT DISTINCT。我怀疑它更快,但我没有什么可以证明的。 在任何情况下,如果担心速度,请在列上创建索引。 |
![]() |
14
0
SELECT DISTINCT始终与GROUP BY相同或更快。在某些系统(如Oracle)上,它可能会被优化为与大多数查询的DISTINCT相同。在其他服务器(如SQL Server)上,速度可能会快得多。 |
![]() |
15
0
如果 这个问题允许它,try-with-EXISTS,因为它被优化为在找到结果时立即结束(并且不缓冲任何响应),所以,如果您只是尝试规范化像这样的WHERE子句的数据
|
![]() |
16
0
在mySQL中,我发现GROUPBY会将NULL视为distinct,而distinct不会。
所以我倾向于相信mySQL中有更多的独特之处。 |
![]() |
User1414 · 基于不同字段值在R中创建子集数据集 6 年前 |
![]() |
ChiMo · 在Spark中选择独特的Cassandra 6 年前 |
![]() |
malasi · 删除两对重复的大小写[重复] 6 年前 |
![]() |
Calflamesfann · 如何为每个不同的代码值选择不同的项目 6 年前 |
![]() |
Alex · 选择每周不同和每周不同总体 6 年前 |
![]() |
QA_Col · 将查询从Postgres传递到JPA 7 年前 |