如何解决什么时候应该在查询中使用distinct?
这是一个普遍的问题: 有谁知道我应该何时在查询中使用distinct?我正在努力了解何时正确使用它。我倾向于在不需要它时而不是在不需要时使用它。
非常感谢你们。
解决方法
基本上,没有理由使用select distinct
-尽管有时它是方便的简写。
如果可以避免,请避免! SQL会产生删除重复项的开销,即使没有重复项也是如此。因此,select distinct
比select
慢。
select distinct
通常更适合使用group by
编写-因为经常需要汇总 some 列(例如最大日期/时间)。
也就是说,它可以方便快捷,所以应该完全避免使用它,只是很少使用。
,何时使用DISTINCT没有通用规则,它取决于您的要求,即,当您在一列中有两个相同的值,但只需要一个值时,便会使用distinct。
假设您有一个城市的银行和分行的列表。但是您需要知道城市中有多少家独特的银行在运营,然后您将写
select distinct bank_name from city;
,
当我要确保查询中的行不会重复时,我会使用“ distinct”,因为查询中可能存在我选择的字段组合的重复记录。通常,这是在选择一组不包含主键/唯一键并且不能保证将选定字段组合在一起时唯一的列的情况。
例如,如果我要选择今年购买的客户来发送一封信,并且客户一年内可以收到多个订单,并且我想确保每人和每个地址仅发送一封信,我将使用Distinct来确保每个唯一的客户名称/地址组合都出现一次。
--could return multiple records for repeat customers if Distinct was not present
Select Distinct BillingName,BillingAddress
from Orders
where OrderDate > '2019-08-01'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。