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
我在 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