MYSQL - множественный счет - PullRequest
0 голосов
/ 07 июня 2010

Я пытаюсь просмотреть нашу демографическую таблицу, чтобы отобразить некоторые статистические данные. Однако, поскольку демографическая таблица достаточно большая, я хочу сделать это одним запросом.

Важными являются 2 поля: sex, last_login

Я хочу получить общее количество входов в систему для различных диапазонов дат (

Я сейчас знаю, как это сделать для одного диапазона дат. Например, менее 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

Однако я должен был бы сделать это один раз для каждого диапазона. Есть ли способ получить все 3 диапазона?

Я бы хотел, чтобы мой конечный результат выглядел примерно так:

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

Спасибо!

ВАЖНОЕ ПРИМЕЧАНИЕ: последнее demo_update - время эпохи (метка времени Unix)

Ответы [ 2 ]

2 голосов
/ 07 июня 2010
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
0 голосов
/ 07 июня 2010

Вы хотите использовать сводную таблицу .

...