ProgrammingError:列“日期”不存在

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ProgrammingError:列“日期”不存在相关的知识,希望对你有一定的参考价值。

我是新来的SQL,目前试图解决一个数据表的问题。

我有一个数据table现在需要首先找到的日期,其上的请求导致的错误。他们被拉到从日志数据库的时间戳。此后,将状态检查where not status = '200 OK'和其上的请求超过1%会导致错误的日期显示having count(*) > 0.01order 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的(使用psycopg2was的线索)

当我看到您的查询有点接近,我注意到它的一些错误,你在一个GROUP BY类型做timestamp时,很显然你希望每个日期的数据和连接是没有必要的。这是我的版本,我认为这将更好地工作。我数都错误的请求,并在相同的查询,其中COUNT(CASE...)只会计算错误请求所有请求。请注意,我用我的化名在GROUP BYHAVING

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' 不存在,试图运行特定的迁移并得到错误

/ 关系“main_post”处的 ProgrammingError 不存在

django.db.utils.ProgrammingError:关系“users_user”不存在