分组中的非整数常数

2024-09-30 12:30:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面一行代码,用于从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下运行此查询是无效的。我的问题出了什么问题


Tags: 代码fromdataframepandasreadsqlbygroup
2条回答

这个链接可能会有帮助Non-integer constants in the ORDER BY clause他们解释了这个错误是什么以及何时发生

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

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

如果标识符区分大小写,则需要用双引号将其括起来(这是Postgres遵守的SQL标准)

请注意,我将COUNT(lastname)更改为COUNT(*):除非在lastname列中有null值,否则这是等效的,而且效率更高。我还在resultset中为该列提供了一个别名

相关问题 更多 >

    热门问题