0

データベースからデータがない日も含めて、1 日あたりのイベント数を取得しようとしています。カレンダー テーブルを作成し、見つかったすべての提案を試しましたが、何らかの理由で 2 倍のイベント数を取得し続けています。毎日。以下は、私が遊んでいるクエリです。

 SELECT DAY(c.datefield) as date, COUNT(s.timestamp) as count
FROM calendar c 
LEFT OUTER JOIN Seizures s ON (DATE(s.timestamp) = c.datefield)
WHERE c.datefield LIKE '2012-11-%'
GROUP BY c.datefield

机に頭をぶつけるのをやめさせてくれる人がいれば、大歓迎です。

ノート:

データのない日付を入力するために JOIN を使用せずに単純なカウント クエリを実行すると、正しいエントリ数が得られます。何らかの理由でカウントが 2 倍になるのは、参加しようとしたときだけです。

4

2 に答える 2

0

私のカレンダーテーブルのすべてのエントリがどういうわけか複製されていたことが判明しました。

助けてくれてありがとう。

于 2012-12-19T20:47:31.177 に答える
0

これらの結果に基づくと、calendarテーブルに重複した行が含まれているようです。これを確認するには、次を実行します。

SELECT datefield, COUNT(*) FROM calendar
WHERE datefield LIKE '2012-11-%'
GROUP BY datefield
HAVING COUNT(*) > 1

行が返された場合は、クエリが期待どおりに機能する前に対処する必要がある重複があります。

于 2012-12-19T20:48:59.483 に答える