GROUP BY Id和DATE时获取COUNT个ID

时间:2018-04-25 10:42:22

标签: mysql group-by subquery

目前,我的表格包含3列idclicksdates。每个ID都有一个条目,其中包含每月每天的点击次数,格式为' 20180420'在日期栏中,让我们说2018年4月20日。

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

我运行此查询以获取每个月每次点击此ID的次数超过一次,并且我想做类似的事情,以获取每个ID多次点击多少个月的计数,但我不会&#39 ;得到正确的结果。

我错过了一些基本的东西吗? P.S:我正在使用MySQL 5.6

1 个答案:

答案 0 :(得分:0)

我猜日期存储为varchar,如果是,则将字符串转换为date。试试这个:

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;