postgresql 中的以下 sql 语句等效于什么?

What is the equivalent of the following sql statement in postgresql?

我在 MySql 数据库中执行了以下 SQL 语句并且它成功运行

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