Mysql-获取上周带有时间戳的条目数占整个实体的百分比

Mysql-获取上周带有时间戳的条目数占整个实体的百分比,mysql,sql,Mysql,Sql,我有一个带有时间戳col的表,大约100000行,如何找到上周有时间戳的条目总数的百分比?我可以找到条目的数量 SELECT count(*) c FROM table t WHERE timestamp_col > DATE_SUB(now(), INTERVAL 1 WEEK) 但我如何将其计算回总行数的%呢 我可以通过两条语句强制执行此操作,但我想知道是否有一个仅限SQL的解决方案?您实际上可以轻松地执行此操作。这里有一条捷径: SELECT avg(timestamp_col &

我有一个带有时间戳col的表,大约100000行,如何找到上周有时间戳的条目总数的百分比?我可以找到条目的数量

SELECT count(*) c FROM table t WHERE timestamp_col > DATE_SUB(now(), INTERVAL 1 WEEK)
但我如何将其计算回总行数的%呢


我可以通过两条语句强制执行此操作,但我想知道是否有一个仅限SQL的解决方案?

您实际上可以轻松地执行此操作。这里有一条捷径:

SELECT avg(timestamp_col > DATE_SUB(now(), INTERVAL 1 WEEK) )
FROM table t;
MySQL将布尔值视为整数,
1
为true,
0
为false

上述内容相当于:

SELECT sum(timestamp_col > DATE_SUB(now(), INTERVAL 1 WEEK) ) / count(*)
FROM table t;

实际上,你可以很容易地做到这一点。这里有一条捷径:

SELECT avg(timestamp_col > DATE_SUB(now(), INTERVAL 1 WEEK) )
FROM table t;
MySQL将布尔值视为整数,
1
为true,
0
为false

上述内容相当于:

SELECT sum(timestamp_col > DATE_SUB(now(), INTERVAL 1 WEEK) ) / count(*)
FROM table t;

这感觉就像魔术一样持续了几分钟,而我却明白了这是怎么回事!我刚刚学到了一些非常有用的东西-太棒了,谢谢!这感觉就像魔术一样持续了几分钟,而我却明白了这是怎么回事!我刚刚学到了一些非常有用的东西-太棒了,谢谢!