Подсчет количества дней за месяц - PullRequest
1 голос
/ 02 апреля 2012

Я построил в своей базе данных таблицу, в которой при успешном входе на сайт вставляются номер входа и временная метка.

Я вставляю данные через UNIX_TIMESTAMP

Теперь мне нужносоздайте запрос для подсчета количества входов в систему для каждого пользователя в конкретном месяце. Важно то, что я хочу отслеживать только количество дней, в течение которых пользователь входил в данный месяц, а не фактическое число учетных записей.

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

SELECT login, COUNT(DAY(FROM_UNIXTIME(datestamp)))
FROM logincount
GROUP BY login

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Я считаю, что вы хотите COUNT(DISTINCT).

Кроме того, если вы хотите рассчитывать в месяц, вы можете добавить функцию MONTH в свойSELECT и GROUP BY

SELECT 
    login,
    MONTH(FROM_UNIXTIME(datestamp)) AS MonthOfYear,
    COUNT(DISTINCT DAY(FROM_UNIXTIME(datestamp))) AS DaysInMonth
FROM logincount
GROUP BY login, MONTH(FROM_UNIXTIME(datestamp))
0 голосов
/ 02 апреля 2012

Вы можете использовать:

SELECT login,count(a) FROM (SELECT login, DAY(FROM_UNIXTIME(datestamp) AS a FROM logincount) sq GROUP BY login;

, чтобы получить количество дней для каждого входа в систему.

...