2

我最近在一次采访中被问到以下问题:

返回表中两个不同日期/时间之间的所有重复行。

我最好的猜测是:

SELECT *, 
COUNT(LogDate) AS NumOccurrences
FROM LogTable
WHERE LogDate > "SomeDate" 
AND LogDate < "SomeDate"
GROUP BY LogDate
HAVING ( COUNT(LogDate) > 1 )

我在球场上吗?对正确答案有任何想法吗?

谢谢。

4

1 回答 1

5

无需在选择中计数(*)(至少不是因为您的问题是制定的)。

选择中的所有字段都必须在 GROUP BY 子句中(当然,您可以在 GROUP BY 中拥有比在 SELECT 中更多的字段)

SELECT field1, field2, LogDate
FROM LogTable
WHERE LogDate BETWEEN "SomeDate" AND "SomeOtherDate"
GROUP BY field1, field2, LogDate
HAVING COUNT(*) > 1
于 2013-01-23T15:42:32.500 回答