簡體   English   中英

GROUP BY 中的非整數常量

[英]Non-integer constant in GROUP BY

我有以下代碼行應該從 SQL 查詢構建 Pandas 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...
                                                             ^

我看不到我在哪里或如何使用常量,integer 與否,這對我來說是一個非常標准的 MSSQL 查詢,但在 PostgreSQL 和 Pandas 下運行此查詢無效。 我的查詢有什么問題?

標識符周圍的單引號將它們轉換為文字字符串,這可能不是您想要的。 您應該將此查詢編寫為:

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

如果您的標識符區分大小寫,那么您需要用雙引號將它們括起來(這是 Postgres 遵守的 SQL 標准)。

請注意,我將COUNT(lastname)更改為COUNT(*) :除非您在lastname列中有null值,否則這是等效的,並且更有效。 我還在結果集中為該列指定了一個別名。

此鏈接可能會有所幫助ORDER BY 子句中的非整數常量它們解釋了此錯誤是什么以及何時發生

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM