我有以下SQL语句在MySql
数据库中执行,并且它成功工作
cursor.execute("""SELECT COUNT(*), `deleted` FROM `tweets` WHERE `id` = %s""", (tweet['id'],))
在postgres database
中的等价物是什么?尝试下面的
cursor.execute("""SELECT COUNT(*), deleted FROM tweets WHERE id = %s""", (tweet['id'],))
失败,出现错误
ERROR: ERROR: column "tweets.deleted" must appear in the GROUP BY clause or be used in an aggregate function
我不确定我应该在哪里添加GROUP BY
条款。如有任何帮助,不胜感激。
语句:
SELECT COUNT(*), `deleted`
FROM `tweets`
WHERE `id` = %s
在任何数据库中都是畸形的,包括MySQL,因为SELECT
列混合了聚合函数和非聚合函数,没有GROUP BY
。
旧版本的MySQL接受这种语法(一个很高兴被修复的疏忽!)deleted
的值来自任意行。因此,您可以使用deleted
的任何值来匹配该功能。因此,使用聚合函数:
SELECT COUNT(*), MAX(deleted) as deleted
FROM `tweets`
WHERE `id` = %s