0

奇妙な理由で、週ごとのグループは、日時フィールドで奇数の日付間隔を返しています。

「Completed」は日時フィールドであり、次のクエリを使用します。

SELECT 
    Completed, 
    COUNT( DISTINCT Table1.ID ) AS ActivityCount 
FROM Table1 
JOIN Table1Items 
ON Table1.ID = Table1Items.ID 
JOIN database_database.Table2 
ON Table2.Item = Table1Items.Item 
WHERE Completed != '0000-00-00' AND Completed >= '2012-09-25' AND Completed <= '2012-10-25' 
GROUP BY WEEK(Completed)

私が得ている:

Completed  ActivityCount    CompletedTimestamp
2012-09-25  300            2012-09-25 00:00:00
2012-10-02  764            2012-10-02 00:00:00
2012-10-08  379            2012-10-08 00:00:00
2012-10-17  659            2012-10-17 00:00:00
2012-10-22  382            2012-10-22 00:00:00

いくつかは7日離れており、他は6日離れており、他は5日離れています...そして1つは9日ですか?

なぜそれはちょうど7日ではなくそのような奇妙な間隔で日付をグループ化するのですか?

4

2 に答える 2

1

関数は日付のweek差をカウントしません。

このweek関数は、日付の週番号を返します。それによってグループ化すると、グループには週の開始日と終了日、およびその間の日付が含まれます。単一の日付の差は、7 日を超えることもあれば、それ以下になることもあります。

于 2012-10-26T02:28:35.350 に答える
0

juergen d がほのめかしたように、答えは日付列を集計することでした-一貫した間隔として使用する週の最初の日または最後の日を使用するかどうかに応じて、最小または最大を使用します。例えば:

SELECT MIN(Completed), COUNT( DISTINCT Table1.ID ) AS ActivityCount FROM Table1 JOIN Table1Items ON Table1.ID = Table1Items.ID JOIN database_database.Table2 ON Table2.Item = Table1Items.Item WHERE Completed != '0000-00-00' AND 完了 >= '2012-09-25' AND 完了 <= '2012-10-25' GROUP BY WEEK(完了)

于 2012-10-31T12:53:49.467 に答える