怎么样在数据库中使用命令统计我想要的数据

2026-01-02 01:11:14

1、数据库统计,总是有很多类似的场景。

比如有了许多数据了,要统计今天访问网站有多少人,诸如此类。

来先看下示例的数据源

怎么样在数据库中使用命令统计我想要的数据

2、后面的操作都是根据这个数据源操作的哦。

先来看看怎么统计今天都有哪些事件发生了。

SELECT name,count(1) as num,url FROM log_event GROUP BY `name`;

怎么样在数据库中使用命令统计我想要的数据

3、但是我们的运营老是不满足这些简单的数据统计,他们还想知道,6点前和六点后的数据分别是哪些数据。

当然,如果分多次查询,也是可以得到结果的。

但不是我们想要的呀,比如

SELECT name,count(1) as num,url FROM log_event WHERE create_time >= '2018-02-06 18:00:00' GROUP BY `name`;

SELECT name,count(1) as num,url FROM log_event WHERE create_time < '2018-02-06 18:00:00' GROUP BY `name`;

怎么样在数据库中使用命令统计我想要的数据

怎么样在数据库中使用命令统计我想要的数据

4、前面的操作是符合要求的,但是如果分一百个时段,我就要做一百相同的查询?

怎么想都不科学呀。

怎么样在数据库中使用命令统计我想要的数据

5、上下求索之后还是有方案的。

突然变的,这么长一串代码,怎么看都不太科学啊。

在优化下吧。

怎么样在数据库中使用命令统计我想要的数据

6、功夫不负有心人,办法总是有的,变通下。

SELECT `name`,

sum(CASE WHEN (

create_time >= '2018-02-06 17:00:00'

AND create_time < '2018-02-06 18:00:00'

) THEN 1 ELSE 0 END

) AS '17',

sum(

CASE WHEN (

create_time >= '2018-02-06 18:00:00'

AND create_time < '2018-02-06 19:00:00'

) THEN 1 ELSE 0

END

) AS '18',

url

FROM

log_event

GROUP BY

`name`;

怎么样在数据库中使用命令统计我想要的数据

7、结果出来了,时间段,名称,统计时间,数据都有了。完美

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢