0

(英語が下手で下手でごめんなさい) こんにちは!4 つの列を含む mysql データベースと、10 分ごとにユーザーのステータスを要求するスクリプトとしての cron ジョブがあります。データベース列:

ID UID STATUS CHECK_AT
  • ID - 単なるシーケンス番号 (1、2、3 など)。スクリプトが DB に何かを書き込むたびに、数が増えます。
  • UID - キー値。ユーザーのIDだとしましょう。すべての DB には、約 3 ~ 5 の異なる UID が含まれています
  • STATUS - 値は 1 または 0 です。1 がオンライン、0 がオフラインであるとします。オンライン ステータスのタイムアウトは 10 分です。
  • CHECK_AT - 2013-10-01 00:30:01 のようなスクリプト作業の日時

ロジック: 10 分ごとに、スクリプトはオンライン (1) またはオフライン (0) の特定の UID (他のテーブルに書き込まれている) をチェックしています。私;やろうとしていること: 1日の特定のUIDの要約オンライン時間を出力するには; 週; 月など

私はそれが初歩的であるべきだと思います

select count(id) from DB_NAME where date(check_at) = '2013-10-01';

一日の間

select count(uid) from user_activity where date(check_at) between '2013-10-01' and '2013-10-07';

数日間など。

しかし、私のスキルは、日付のオンライン時間 (ステータス = 1) のみをカウントする方法を知るには低すぎます。アドバイスをお願いできますか?

4

1 に答える 1