ProgrammingError:列“日期”不存在
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ProgrammingError:列“日期”不存在相关的知识,希望对你有一定的参考价值。
我是新来的SQL,目前试图解决一个数据表的问题。
我有一个数据table现在需要首先找到的日期,其上的请求导致的错误。他们被拉到从日志数据库的时间戳。此后,将状态检查where not status = '200 OK'
和其上的请求超过1%会导致错误的日期显示having count(*) > 0.01
,order by num desc
。
def number_one_error():
"""
Percentage of errors from requests
Counting errors and timestamps
Output:
number one errors
"""
db = psycopg2.connect(database=dbname)
c = db.cursor()
c.execute('''
select date
from (select date(log.time) AS date_column,
count (*) as request_error
from log where not status = '200 OK'
group by log.time) as oneerror
join (select date(log.time) AS date_column,
count(*) as requests
from log
group by log.time) as total
on oneerror.date_column = total.date_column
where (round(((oneerror.request_error)/all_requests),3> 0.01))
''')
number_one_error = c.fetchall()
db.close()
psycopg2.ProgrammingError: column "date" does not exist
LINE 2: select date
你指的是错列指出,如果你想你的列被命名为date
您可以在外部查询中也使用别名
SELECT oneerror.date_column AS date
下面的建议是无关紧要的,因为这个问题被标记与mysql的时候,其实在数据库PostgreSQL的(使用psycopg2
was的线索)
当我看到您的查询有点接近,我注意到它的一些错误,你在一个GROUP BY
类型做timestamp
时,很显然你希望每个日期的数据和连接是没有必要的。这是我的版本,我认为这将更好地工作。我数都错误的请求,并在相同的查询,其中COUNT(CASE...)
只会计算错误请求所有请求。请注意,我用我的化名在GROUP BY
和HAVING
都
SELECT date_column as date, 100 * ROUND(error/ok, 3) as percent
FROM (SELECT DATE(time) as date_column,
COUNT(*) as ok,
COUNT(CASE WHEN status != '200 OK' THEN 1 ELSE NULL END) as error
FROM log
GROUP BY date_column
) s
HAVING (percent > 1)
我认为错误是相当清楚的。你有没有列称为date
。
我怀疑你想要的:
select oneerror.date_column
以上是关于ProgrammingError:列“日期”不存在的主要内容,如果未能解决你的问题,请参考以下文章
django.db.utils.ProgrammingError:类型“光栅”不存在
Django 测试 django.db.utils.ProgrammingError:(1146,“表 'DB.Table' 不存在”)
django.db.utils.ProgrammingError:表不存在
ProgrammingError: 关系 'blah blah' 不存在,试图运行特定的迁移并得到错误