Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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
Mysql 如果列的group by count大于1,如何删除特定列中具有最小值的行_Mysql_Sql_Duplicates_Sql Delete - Fatal编程技术网

Mysql 如果列的group by count大于1,如何删除特定列中具有最小值的行

Mysql 如果列的group by count大于1,如何删除特定列中具有最小值的行,mysql,sql,duplicates,sql-delete,Mysql,Sql,Duplicates,Sql Delete,我有一张如下所示的表格,名称为Recondation 我想删除cnt具有最小值且存在多条ID\u recipient记录的所有行 如果有一条ID\u接收者的记录,则无论cnt值是什么,都不应删除该记录 蓝色突出显示的是必须保留的记录 我试过: DELETE from table where( SELECT DISTINCT(A.ID_recipient), DISTINCT(A.cnt) FROM ( SELECT MIN(cnt) as cnt FROM re

我有一张如下所示的表格,名称为Recondation

我想删除
cnt
具有最小值且存在多条
ID\u recipient
记录的所有行

如果有一条
ID\u接收者的记录
,则无论
cnt
值是什么,都不应删除该记录

蓝色突出显示的是必须保留的记录

我试过:

DELETE from table where( 
    SELECT DISTINCT(A.ID_recipient), DISTINCT(A.cnt) FROM (
          SELECT  MIN(cnt) as cnt FROM recomendation_table_ID_recipient GROUP BY ID_recipient HAVING COUNT(*) > 1 ) as A);

不起作用。

如果要使用2个维度,则必须在子句中使用

您的子查询没有多大意义,所以您应该首先测试它,或者使用想要的示例发布数据

DELETE from recomendation_table_ID_recipient where (ID_recipient,cnt) IN ( 
    SELECT DISTINCT A.ID_recipient, A.cnt FROM (
          SELECT ID_recipient, MIN(cnt) as cnt FROM recomendation_table_ID_recipient GROUP BY ID_recipient HAVING COUNT(*) > 1 ) as A);

如果要使用2个维度,则必须使用IN子句

您的子查询没有多大意义,所以您应该首先测试它,或者使用想要的示例发布数据

DELETE from recomendation_table_ID_recipient where (ID_recipient,cnt) IN ( 
    SELECT DISTINCT A.ID_recipient, A.cnt FROM (
          SELECT ID_recipient, MIN(cnt) as cnt FROM recomendation_table_ID_recipient GROUP BY ID_recipient HAVING COUNT(*) > 1 ) as A);


请看,并注意DISTINCT不是一个函数。我创建了一个带有一些测试数据的db FIDLE,但正如@草莓所指出的,如果您希望将来获得帮助,您应该这样做。我相信您下次也可以为OP做这一切。请看,并注意DISTINCT不是一个函数。我创建了一个带有一些测试数据的db FIDLE,但是正如@草莓所指出的,如果你想在将来得到帮助,你应该这样做。我相信你也可以在下次的行动中做到这一切。