Получить COUNT ID, когда GROUP BY Id и дата - PullRequest
0 голосов
/ 25 апреля 2018

В настоящее время у меня есть таблица с 3 столбцами с id, clicks и dates. Каждый идентификатор имеет запись с кликами для каждого дня месяца в формате «20180420» в столбце даты, скажем, 20 апреля 2018 года.

SELECT 
   id,
   month(date),
   COUNT(id) 
FROM mydb 
WHERE (date >= 20180101 AND date < 20180424) clicks > 0
GROUP BY id, MONTH(date); 

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

Я что-то упустил? П.С .: Я использую MySQL 5.6

1 Ответ

0 голосов
/ 25 апреля 2018

Полагаю, дата хранится в виде varchar, если это так, то конвертируйте строку в дату. Попробуйте:

SELECT MONTH(STR_TO_DATE(A.date,'%y%m%d')) MONTH, COUNT(*) NUMBER_OF_CLICKS
FROM mydb A
WHERE STR_TO_DATE(A.date,'%y%m%d') BETWEEN STR_TO_DATE('20180101','%y%m%d') AND CURRENT_DATE
GROUP BY 1
ORDER BY 1 DESC;
...