0

いくつかの統計を表示するために、demographiocテーブルをルックアップしようとしています。ただし、人口統計テーブルはかなり大きいので、1つのクエリで実行したいと思います。

重要なフィールドは2つあります:sex、last_login

さまざまな日付範囲(<1日前、1〜7日前、7〜30日前など)のログインの総数を取得できるようにしたい

私は今、1つの日付範囲でそれを行う方法を知っています。たとえば、1日未満前:

SELECT sex, count(*) peeps 
  FROM player_account_demo 
 WHERE last_demo_update > 1275868800 
GROUP BY sex

どちらが返されますか:

sex       peeps
----------------
UNKNOWN   22
MALE      43
FEMALE    86

ただし、これは範囲ごとに1回実行する必要があります。そこに3つの範囲すべてを取得する方法はありますか?

最終結果を次のようにしたいと思います。

sex       peeps<1day      peeps1-7days       peeps7-30days

ありがとう!

重要な注意:最後のdemo_updateはエポックタイム(unixタイムスタンプ)です

4

2 に答える 2

2
SELECT sex,
  SUM(IF(DATEDIFF(NOW(),last_login) < 1,1,0)),
  SUM(IF(DATEDIFF(NOW(),last_login) BETWEEN 1 AND 7,1,0)),
  SUM(IF(DATEDIFF(NOW(),last_login) BETWEEN 7 AND 30,1,0))
FROM player_account_demo 
GROUP BY sex
于 2010-06-07T19:05:21.723 に答える
0

ピボットテーブルを使用したい。

于 2010-06-07T18:28:59.467 に答える