我有下面一行代码,用于从SQL查询构建一个DataFrame
:
query_epd = pandas.read_sql_query("SELECT 'Department', COUNT('LastName') FROM thestaff.employees GROUP BY 'Department'", engine)
但是,当我运行代码时,这一行给出了错误:
SyntaxError: non-integer constant in GROUP BY
LINE 1: ...OUNT('LastName') FROM thestaff.employees GROUP BY 'Departmen...
^
我看不出我在哪里或如何使用常量,整数与否,这是我在MSSQL上的一个非常标准的查询,但在PostgreSQL和Pandas下运行此查询是无效的。我的问题出了什么问题
这个链接可能会有帮助Non-integer constants in the ORDER BY clause他们解释了这个错误是什么以及何时发生
标识符周围的单引号将它们转换为文字字符串,这可能不是您想要的。您应该将此查询编写为:
如果标识符区分大小写,则需要用双引号将其括起来(这是Postgres遵守的SQL标准)
请注意,我将
COUNT(lastname)
更改为COUNT(*)
:除非在lastname
列中有null
值,否则这是等效的,而且效率更高。我还在resultset中为该列提供了一个别名相关问题 更多 >
编程相关推荐