在 sql 中显示重复值
Displaying duplicate values in sql
我需要查找在一个 table 中的两个字段在指定日期范围内出现不止一次的所有记录。
我使用了下面的方法来显示重复项,但我需要在一段时间内指定,每当我尝试包含一个日期范围时,它就会开始显示所有记录,而不仅仅是重复项
如有任何帮助,我们将不胜感激!
SELECT
y.ID,y.site,y.machine
FROM calls y
INNER JOIN (SELECT
site,machine, COUNT(*) AS CountOf
FROM calls
GROUP BY site,machine
HAVING COUNT(*)>1
) dt ON y.site=dt.site and y.machine=dt.machine
试试这个:
SELECT y.ID,
y.site,
y.machine
FROM calls y
WHERE y.date BETWEEN ... AND ...
AND EXISTS (SELECT x.ID
FROM calls x
WHERE x.site = y.site
AND x.machine = y.machine
AND x.date BETWEEN ... AND ...
AND x.ID <> y.ID);
您必须在两个 sql 语句(内部和外部)中放置日期范围 where/on 条件才能获得您要查找的确切记录。这可以通过 where 语句完成,如下所示:
SELECT
y.ID,y.site,y.machine
FROM calls y
INNER JOIN (SELECT
site,machine, COUNT(*) AS CountOf
FROM calls
WHERE Date BETWEEN StartOfRange AND EndOfRange
GROUP BY site,machine
HAVING COUNT(*)>1
) dt ON y.site=dt.site and y.machine=dt.machine
WHERE
y.Date BETWEEN StartOfRange AND EndOfRange
我需要查找在一个 table 中的两个字段在指定日期范围内出现不止一次的所有记录。 我使用了下面的方法来显示重复项,但我需要在一段时间内指定,每当我尝试包含一个日期范围时,它就会开始显示所有记录,而不仅仅是重复项
如有任何帮助,我们将不胜感激!
SELECT
y.ID,y.site,y.machine
FROM calls y
INNER JOIN (SELECT
site,machine, COUNT(*) AS CountOf
FROM calls
GROUP BY site,machine
HAVING COUNT(*)>1
) dt ON y.site=dt.site and y.machine=dt.machine
试试这个:
SELECT y.ID,
y.site,
y.machine
FROM calls y
WHERE y.date BETWEEN ... AND ...
AND EXISTS (SELECT x.ID
FROM calls x
WHERE x.site = y.site
AND x.machine = y.machine
AND x.date BETWEEN ... AND ...
AND x.ID <> y.ID);
您必须在两个 sql 语句(内部和外部)中放置日期范围 where/on 条件才能获得您要查找的确切记录。这可以通过 where 语句完成,如下所示:
SELECT
y.ID,y.site,y.machine
FROM calls y
INNER JOIN (SELECT
site,machine, COUNT(*) AS CountOf
FROM calls
WHERE Date BETWEEN StartOfRange AND EndOfRange
GROUP BY site,machine
HAVING COUNT(*)>1
) dt ON y.site=dt.site and y.machine=dt.machine
WHERE
y.Date BETWEEN StartOfRange AND EndOfRange