私の例の表:
+----------+---------------------+
| username | time |
+----------+---------------------+
| john | 2013-02-04 17:39:43 |
| john | 2013-02-03 00:21:31 |
| peter | 2013-02-02 15:04:53 |
| grace | 2013-02-02 03:57:43 |
| peter | 2013-02-03 15:36:15 |
+----------+---------------------+
このテーブルは、ユーザーからのアクティビティを登録します。最後の活動日が30日以上前のユーザーの数を数える必要があります。
私はこのクエリを開発しました:
SELECT
username,
MAX(time),
DATEDIFF(NOW(), MAX(time)) as diff
FROM tracking
GROUP BY username
HAVING diff > 30
これは、アクティビティが30日以上前のユーザーのリストと、その最後のアクティビティの日付を効果的に返します。
しかし、リスト自体ではなく、このリストの数が必要です。リストを数える方法はありますか?
ノート:
- 私はSQLステートメントのみに頼ることができ、 PHPやASPなどを使用することはできません。
- ストアドプロシージャを使用できません。
- このステートメントはたまにしか実行されないので、パフォーマンスは必要ありません。