mysql查询中的多次计数

qyzbxkaa  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(376)

我想用两个不同的计数标准来计算一个特定的数据库列,这样我就可以计算出一个百分比
例如,让相同的数据库列称为延迟,列中的数据包含秒数。
我想计算大于50秒的延迟消息数,但也要计算同一查询中的延迟消息总数(即大于0秒)
我当前的查询时间>50秒,如下所示

select COUNT(*) from table WHERE date = 20180701 and CAST(Latency As Signed) > 50

如何在同一查询中包含计数>0秒??

wf82jlnq

wf82jlnq1#

使用条件聚合:

SELECT
    COUNT(CASE WHEN CAST(Latency As Signed) > 50 THEN 1 END) AS latency,
    COUNT(CASE WHEN CAST(Latency As Signed) > 0  THEN 1 END) AS total,
    100.0 * COUNT(CASE WHEN CAST(Latency As Signed) > 50 THEN 1 END) /
            COUNT(CASE WHEN CAST(Latency As Signed) > 0  THEN 1 END) AS percentage
FROM table
WHERE date = 20180701;
wfveoks0

wfveoks02#

这也许对你有帮助,@john,如何用一个sql查询获得多个计数?它与聚合函数一起使用count,以便在一个查询中针对多个count函数。。

相关问题