0
我有一个包含3列的数据库。一个具有名为路径的文件路径,其中一个具有值OK或NOK,称为状态,另一个具有日期和时间,称为时间。列表文件,OK和NOK的计数和按日期排序
Path Status Date
/var/log 200 2016-10-20
/etc/rc.d 404 2016-10-21
/etc/rc.d 200 2016-10-21
所以我试图通过是相同的,但显示的是多少次的成功,而不是按日期和路径成功计数的路径进行排序。
我尝试过这样的事情,但它给了我整个数据库中的错误总数,而不是那些在给定日期发生的错误。
select to_char(time, 'YYYY-MM-DD') as date,
(SELECT count(status) from log where status like '404%') as error,
(SELECT count(status) from log where status like '200%') as success
from log group by date, error, success limit 10;
date | error | success
------------+-------+---------
2016-07-01 | 12908 | 1664827
2016-07-02 | 12908 | 1664827
2016-07-03 | 12908 | 1664827
2016-07-04 | 12908 | 1664827
2016-07-05 | 12908 | 1664827
2016-07-06 | 12908 | 1664827
2016-07-07 | 12908 | 1664827
2016-07-08 | 12908 | 1664827
2016-07-09 | 12908 | 1664827
2016-07-10 | 12908 | 1664827
(10 rows)
运行“选择路径,状态,算作从日志日期(状态),TO_CHAR(时间, 'YYYY-MM-DD')按路径,状态,日期分组;“给了我正确的计数,但是我得到了每个日期的一个条目,其中显示了多少次成功以及多少次失败。 –