我有下面一行代码,应该是建立一个Pandas DataFrame
从sql查询:
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下运行这个查询是无效的。我的问题是什么?
2条答案
按热度按时间nxagd54h1#
标识符周围的单引号将它们转换为文字字符串,这可能不是您想要的。您应该将此查询编写为:
如果标识符区分大小写,则需要用双引号将其括起来(这是postgres遵守的sql标准)。
注意我变了
COUNT(lastname)
至COUNT(*)
:除非你有null
中的值lastname
列,这是等效的,而且效率更高。我还为resultset中的这个列提供了一个别名。uqdfh47h2#
这个链接可能对ORDERBY子句中的非整数常量很有帮助—它们解释了这个错误是什么以及何时发生