Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从select查询中删除记录_Sql_Postgresql_Subquery_Sql Delete - Fatal编程技术网

Sql 从select查询中删除记录

Sql 从select查询中删除记录,sql,postgresql,subquery,sql-delete,Sql,Postgresql,Subquery,Sql Delete,我需要通过计算列“command”来删除一些用户,如果少于5个条目,则应从表“users”中删除它们 上述查询不起作用。从选择中删除计数(命令)。您的SELECT正在选择2列,而只有1列应该传递给操作符中的 也可以通过删除订单。当你不得不删除某些东西时,这是毫无意义的 DELETE FROM public."Users" where telegram_nickname in (select telegram_nickname from p

我需要通过计算列“command”来删除一些用户,如果少于5个条目,则应从表“users”中删除它们

上述查询不起作用。

选择中删除
计数(命令)
。您的
SELECT
正在选择2列,而只有1列应该传递给
操作符中的

也可以通过
删除订单。当你不得不删除某些东西时,这是毫无意义的

DELETE FROM public."Users" 
where telegram_nickname in (select telegram_nickname
                            from public."Logs" 
                            group by telegram_nickname 
                            having count (command) > 5 )

中的
运算符要求左侧和右侧的列数相同。子查询返回两列,但只将其与左侧的一列进行比较。您需要从子查询的选择列表中删除
count(命令)
——反正不需要它

另外:子查询中用于
in
条件的
order by
无效(除非应用
distinct on()
limit
子句等)

因此,您需要使用:

DELETE FROM public."Users" 
where telegram_nickname in (select telegram_nickname
                            from public."Logs" 
                            group by telegram_nickname 
                            having count (command) > 5)
DELETE FROM public."Users" 
where telegram_nickname in (select telegram_nickname
                            from public."Logs" 
                            group by telegram_nickname 
                            having count (command) > 5)