我的SQL很生鏽。我有一個記錄所有HTTP請求及其狀態的表。我所想要做的就是創建一個查詢,其中顯示出狀態=「404 NOT FOUND」每天Postgres:返回百分比的查詢
這裏的結果的百分比是表的樣子
articles=# select * from log limit 1;
path | ip | method | status | time | id
-------------------------------+----------------+--------+--------+----------------------------+---------
/article/balloon-goons-doomed | 198.51.100.108 | GET | 200 OK | 2016-07-01 06:02:39-05 | 1688046
我能得到原始計數是這樣的,但不知道如何獲得百分比
SELECT date_trunc('day', time) "day", count(*) as count FROM log WHERE
status='404 NOT FOUND' group by 1 ORDER BY 1;
感謝這是最初返回0但工作有輕微變化 SELECT date_trunc('day',time)「day」, ROUND(COUNT(*)FILTER(WHERE status ='404 NOT FOUND'):: NUMERIC /COUNT(*)* 100,2)「404 Percentage」 FROM log GROUP BY 1 ORDER BY 1 – hypnotoad
@hypnotoad是的,OFC:我忘了cast到'numeric'('int/int'是'int' ,對於'0'和'1'之間的值,它將始終爲'0')。如果你想要百分比,'100.0 * COUNT(...)FILTER(...)/ COUNT(...)'也是一個有效的解決方案。 – pozs