MySQL 根据日期 group by

雨点打透心脏的1/2处 2022-12-28 07:25 357阅读 0赞

mysql 有一张这样的表,需要根据customer_ip_date这个字段的日期进行group by 排序,得出每天的数量是多少

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3NTE3Mzc3_size_16_color_FFFFFF_t_70

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3NTE3Mzc3_size_16_color_FFFFFF_t_70 1

MySQL 根据日期 group by有两种写法:

1.字符串截取:substring,从第一个字段截取到第十个字符串,然后group by

  1. SELECT substring(customers_ip_date, 1, 10),count(distinct customers_ip) as days_count FROM `userLoginTable`
  2. WHERE customers_ip_date BETWEEN '2019-12-01 00:00:00' AND '2019-12-31 23:59:59' group by substring(customers_ip_date, 1, 10)

2.使用cast函数,进行group by

  1. SELECT cast(customers_ip_date as date) as day_time,count(distinct customers_ip) as days_count FROM `userLoginTable`
  2. WHERE customers_ip_date BETWEEN '2019-12-01 00:00:00' AND '2019-12-31 23:59:59' group by cast(customers_ip_date as date)

20201215143818124.png

以上两种写法都可以实现mysql根据日期group by 的需求

customers_ip_date 字段有索引的情况下,目前在6000W的表查询也是很快就查询出来

20201215144249318.png

发表评论

表情:
评论列表 (有 0 条评论,357人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQL GROUP BY

    1. 只会返回分组后的一条结果,但是实际上里面含有的结果不仅有一条 \\![加粗样式][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow

    相关 MYSQLGroup By

    概述 `Group By`即根据其指定的规则对查询数据进行分组,这个分组的意义是对分组内数据进行数据处理,包括SUM、COUNT等等。 这里需要注意的是:`Selec

    相关 mysql group by order by

    这两天让一个数据查询难了。主要是对group by 理解的不够深入。才出现这样的情况 这种需求,我想很多人都遇到过。下面是我模拟我的内容表 复制代码 代码如下: