groupby中的非整数常量

yduiuuwa  于 2021-08-13  发布在  Java
关注(0)|答案(2)|浏览(439)

我有下面一行代码,应该是建立一个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下运行这个查询是无效的。我的问题是什么?

nxagd54h

nxagd54h1#

标识符周围的单引号将它们转换为文字字符串,这可能不是您想要的。您应该将此查询编写为:

SELECT department, COUNT(*) no_emp
FROM thestaff.employees 
GROUP BY department

如果标识符区分大小写,则需要用双引号将其括起来(这是postgres遵守的sql标准)。
注意我变了 COUNT(lastname)COUNT(*) :除非你有 null 中的值 lastname 列,这是等效的,而且效率更高。我还为resultset中的这个列提供了一个别名。

uqdfh47h

uqdfh47h2#

这个链接可能对ORDERBY子句中的非整数常量很有帮助—它们解释了这个错误是什么以及何时发生

相关问题