如果将 Distinct 和 Group by 与聚合一起使用,重复检查之间的区别
Difference between duplicate check if using Distinct and Group by with aggregate
好的,我已经有一段时间没有大量使用 SQL 服务器来编写查询了。
一定有一些我遗漏的问题。
根据我的理解,以下两个查询应该return相同数量的重复记录
SELECT COUNT(INVNO)
, INVNO
FROM INVOICE
GROUP BY INVNO
HAVING COUNT(INVNO) > 1
ORDER BY INVNO
SELECT DISTINCT invno
FROM INVOICE
ORDER BY INVNO
INVNO[=11=]中没有空值
我哪里可能出错?
这些查询不会return 相同的结果。第一个只会给你重复的 INVNO 值,第二个会给出所有唯一的 INVNO 值,即使它们在整个 table 中只出现一次。
group by query 将过滤我们所有的单张发票,而 distinct 将简单地从每张发票中挑选一张。第一个查询是第二个的子集
除了 Adam 所说的,GROUP BY 将对 GROUPed 列上的数据进行排序。
好的,我已经有一段时间没有大量使用 SQL 服务器来编写查询了。
一定有一些我遗漏的问题。
根据我的理解,以下两个查询应该return相同数量的重复记录
SELECT COUNT(INVNO)
, INVNO
FROM INVOICE
GROUP BY INVNO
HAVING COUNT(INVNO) > 1
ORDER BY INVNO
SELECT DISTINCT invno
FROM INVOICE
ORDER BY INVNO
INVNO[=11=]中没有空值
我哪里可能出错?
这些查询不会return 相同的结果。第一个只会给你重复的 INVNO 值,第二个会给出所有唯一的 INVNO 值,即使它们在整个 table 中只出现一次。
group by query 将过滤我们所有的单张发票,而 distinct 将简单地从每张发票中挑选一张。第一个查询是第二个的子集
除了 Adam 所说的,GROUP BY 将对 GROUPed 列上的数据进行排序。