次のタスク。 ID、UserID、Timeという3つの列を持つ表があります。これはDateTime-Typeです。今私は、次の統計情報を取得したい:私は5つの範囲持ってファジィ範囲で順序付けられた日々の値の統計情報を取得する
:
- 朝(午前6時 - 11.30am)
- 正午(11.30am - 午後)
- 午後(午後2時を - 午後6時)
- 夜(午後6時 - 午後10時)
- 夜(午後10時 - 午前6時)
ユーザー持ち、一例として、次のエントリ:
ID UserID Time
46 1 2011-11-17 17:51:24
47 1 2011-11-17 11:41:41
48 1 2011-11-17 07:31:20
49 1 2011-11-17 21:41:55
50 1 2011-11-17 21:58:28
99 1 2011-11-18 10:12:18
私の目標は、次の配列を取得するには、次のとおりです。
Array (
['today'] => Array (
['morning'] => 1,
['noon'] => 1,
['afternoon'] => 1,
['evening'] => 2,
['night'] => 0
)
['all'] => Array (
['morning'] => 2,
['noon'] => 1,
['afternoon'] => 1,
['evening'] => 2,
['night'] => 0
)
['avg'] => Array (
['morning'] => 1.5,
['noon'] => 0.5,
['afternoon'] => 0.5,
['evening'] => 1,
['night'] => 0
)
)
私は本当にユーザーのすべての値の結果セットを反復処理するかどうまあ、それは動作しますしかし、私はMySQLとその日付関数を介してより簡単な方法があると確信しています。また、すべてのエントリを取ろうとしていて、時間を取得したいだけでdatetimesを取得したくない場合は、問題が発生します。私はphpの日付関数で最初にそれを解析し、時間自体を取得する必要があり、本当に有用ではありません。なぜなら、おそらくユーザIDごとに何千もの行が得られるからです。 他のタスクのために、日付自体をテーブルに保存する必要があります。
これは素晴らしい作品です!どうもありがとうございました! –