python - GROUP BY 中的非整数常量
问题描述
DataFrame
我有以下代码行应该从 SQL 查询构建 Pandas :
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 下运行这个查询是无效的。我的查询有什么问题?
解决方案
标识符周围的单引号将它们转换为文字字符串,这可能不是您想要的。您应该将此查询编写为:
SELECT department, COUNT(*) no_emp
FROM thestaff.employees
GROUP BY department
如果您的标识符区分大小写,那么您需要用双引号将它们括起来(这是 Postgres 遵守的 SQL 标准)。
请注意,我更改COUNT(lastname)
为COUNT(*)
: 除非您null
在列中有值,否则lastname
这是等效的,并且更有效。我还在结果集中为该列指定了一个别名。
推荐阅读
- wagtail - 将 wagtail 管理员中的编辑器只能看到他们上传的图像?
- python - 是否有一个 matplotlib 等效于在 python 中打印漂亮的表格?
- pandas - Value_counts 不按区间除
- javascript - 使用 JavaScript 在数组外添加值
- java - PermCheck Codility Scala 解决方案
- php - method="get" 和 $_GET 有什么区别?
- php - WordPress wp_mail 错误地复制电子邮件,如何防止此错误?
- c++ - 在动态数组(向量)上使用 Mutex
- html - 导航栏切换按钮居中
- firebase - 为什么我重定向到登录页面后登录页面上的身份验证状态不会持久?