Ok por lo que hay mensajes pareja ya aquí en esto y menos aún en la web. Literalmente he intentado cada uno de ellos y no puedo hacer que nada funcione. Esperemos que alguien aquí puede ten piedad de mí :)BORRAR de tener COUNT (*) en MySQL
Estos son los datos que estoy trabajando. Quiero borrar todos estos registros.
SELECT
part_desc, count(*) as rec_num
FROM ag_master
GROUP BY part_desc HAVING COUNT(*) > 1000;
+--------------------------------------+---------+
| part_desc | rec_num |
+--------------------------------------+---------+
| SILICON DELAY LINE, TRUE OUTPUT | 1092 |
| LOADABLE PLD | 1401 |
| 8-BIT, FLASH, 8 MHz, MICROCONTROLLER | 1411 |
| FPGA | 1997 |
| 8-BIT, MROM, 8 MHz, MICROCONTROLLER | 3425 |
+--------------------------------------+---------+
5 rows in set (0.00 sec)
Lo más parecido que he encontrado para encontrar el código que lo haría se muestra a continuación. La sintaxis se comprueba correctamente y se ejecuta, sin embargo, parece que cuelga la base de datos. Lo dejé correr durante 10 minutos y nunca pasa nada, así que lo aborto.
DELETE
FROM ag_master
WHERE part_id IN (
SELECT part_id
FROM ag_master
GROUP BY part_desc
HAVING COUNT(*) > 1000
);
este es el plan explican en la tabla tmp
mysql> EXPLAIN SELECT * FROM ag_master WHERE part_desc IN (SELECT part_desc FROM tmp);
+----+--------------------+-----------+--------+---------------+------+---------+------+--------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+--------------------+-----------+--------+---------------+------+---------+------+--------+-------------+
| 1 | PRIMARY | ag_master | ALL | NULL | NULL | NULL | NULL | 177266 | Using where |
| 2 | DEPENDENT SUBQUERY | tmp | system | NULL | NULL | NULL | NULL | 1 | |
+----+--------------------+-----------+--------+---------------+------+---------+------+--------+-------------+
2 rows in set (0.00 sec)
Por qué son los dos seleccione consultas diferentes, ¿la primera difiere de la segunda? También supongo que quiere borrar 1092 + 1401 + 1411 + 1997 + 3425 = 9,326 registros? – Rippo
¿No estás seguro de lo que quieres decir? Una es solo mostrarle los datos de los que quiero deshacerme, la otra es la manera recomendada de formatear una declaración de eliminación mientras usa el recuento de conteos. –
Sí, quiero deshacerme de todos los 9k + registros. –