2

最近、面接で次のような質問を受けました。

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

選択でカウント(*)する必要はありません(少なくとも質問が定式化されているわけではありません)。

select のすべてのフィールドは GROUP BY 句に含まれている必要があります (ただし、もちろん、SELECT よりも GROUP BY に多くのフィールドを含めることができます)。

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 に答える