我已经为它编写了代码,但是没有回复,我使用的是postgreSQL。
我想要的最后一件事就是找到THE ERROR PERCENTAGE STATUS(参见状态colounm,其中有200 Ok或者没有找到)每天都有。
FOR EG-- 2016/07/22 - 1.5%错误
P.S数据库非常大,具有不同的状态和日期,我想要 结果日期明智
在上面的代码中,我试图找到每天的(未发现状态/总状态)
代码是: -
SELECT status, date(time), round(coun/total) AS percent
FROM log,
(SELECT count(*) AS coun
FROM log
WHERE status NOT LIKE '200 OK'
GROUP BY date(time)
ORDER BY date(time)) c,
(SELECT count(*) AS total
FROM log GROUP BY
date(time)
ORDER BY date(time)) t
GROUP BY date(time), status, percent
ORDER BY date(time);
我拥有的数据库就像那样...... enter image description here
答案 0 :(得分:0)
SELECT distinct status, date(time), round(count(1) over (partition by date(time))/count(1) over ()) AS percent, count(1) over (partition by date(time)), count(1) over ()
FROM log
它会给你每天的状态百分比。不仅不是200,而且所有这些都更有意义,因为你不会在一般查询中过滤它。
或者您可以在结束之前添加FILTER (where status NOT LIKE '200 OK')
,如果您仍然想要它,可以计算。
但一般的想法是不要扫描同一个表三次而不加入结果......