Sql 从select查询中删除记录
我需要通过计算列“command”来删除一些用户,如果少于5个条目,则应从表“users”中删除它们 上述查询不起作用。从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
选择中删除计数(命令)
。您的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)