sqlserver中distinct的用法(不重复的记录)

嘿嘿,说起来,我其实也遇到过一次DISTINCT。
那是在2 01 6 年,我负责一个电商平台的数据库优化项目。
我们有一个表叫“OrderDetails”,它记录了所有订单的详细信息,包括订单号、产品ID、数量等。
当时需要统计每个订单中不同产品的数量。

我当时写了一个SQL查询,使用DISTINCT来过滤掉不同的产品。
代码是这样的:
sql 从订单详细信息中选择不同的产品 ID;
结果出来后,我发现这个查询非常慢,因为数据量太大,有几百万条记录。
然后,我对其进行了优化并添加了索引,速度变得更快了一些。

这次经历让我意识到,DISTINCT虽然很方便,但是使用的时候还是要小心,尤其是数据量很大的时候。
它当然可以帮助我们过滤不重复的数据,但是我们也必须考虑性能问题。

SQL:去重的几种常用方法(oracle)

sql查询去重复数据 sql查询去重

只需使用 DISTINCT 即可删除重复数据。
是的,这就是问题所在。
这种事以前也发生过。

选择与表名称不同的列名称,直接进行。

或按组,但通常与计数、SELECT AS 列名、COUNT() FROM 表名 GROUP BY 列名一起使用。

复杂性,例如,如果要消除重复项,首先将非重复项发送到临时表,然后使用主表。

UNION 避免重复,但仅适用于连接表。

总之,视情况使用,由你决定。