0

私は Android プログラマーで、アプリで SQLite を使用しています (あまり選択肢がありません :))。UNIXタイムスタンプのフィールドを含むテーブルがあります。今、このテーブルのいくつかのフィールドの合計を作成し、月ごとにグループ化したい場合は、次のようにします。

SELECT 月、年、sum(x) FROM foo GROUP BY 月、年

(もちろん、月と年は日付関数です)。

しかし、ある月の10日から彼の次の10日まで、非暦月でグループ化したい.

私はSQLの非常に基本的な知識を持っているので、それを行う方法についての手がかりがありません。誰かが私に PARTITION BY を使用する必要があると言いましたが、SQLite はそれをサポートしていません。私はそれを行う方法があると確信しています。

前もって感謝します、エラド

4

1 に答える 1

2

月の 10 日を処理するには、その 10 日を日付から引くだけです。

select strftime("%y %m", tendaysbefore), <whatever>
from (select foo.*,
             date(thedate, '-10 days') as tendaysbefore
      from foo
     ) t
group by strftime("%Y-%m", tendaysbefore)
order by 1, 2

年と月を別々の列に入れることができます。この例では、それらを 1 つの列にまとめています。

于 2012-08-07T18:08:26.727 に答える