Mysql 按id和日期分组时获取id计数
目前,我有一个包含3列的表,其中包含Mysql 按id和日期分组时获取id计数,mysql,group-by,subquery,Mysql,Group By,Subquery,目前,我有一个包含3列的表,其中包含id,单击和日期。每个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都有一个条目,每个月的每一天都有点击,在日期列中的格式类似于“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)
来自mydb
其中(日期>=20180101,日期<20180424)点击>0
按id分组,月份(日期);
我运行这个查询是为了得到这个id是否每个月点击次数超过一次,我想做一些类似的事情来计算每个id有多少个月点击次数超过一次,但是我没有得到正确的结果
我缺少一些基本的东西吗?
注意:我使用的是MySQL 5.6,我想日期是以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;
实际上,我使用mysql中的MONTH()函数,但我主要担心的是,计数没有正确显示超过0的ID的数量。请为您的问题添加示例和预期数据。不过,我找到了正确的解决方案。我需要创建一个子查询,因为我毕竟想要分组。谢谢你的时间