Select command to delete duplicates, adding results [duplicate]

0

How do I change a table that looks like this:

produto | quant a | 10 a | 5 b | 8 b | 3

And leave it like this:

produto | quant a | 15 b | 11

Is there any command select that I can use to make this modification?

    
asked by anonymous 16.08.2017 / 14:47

1 answer

2

If you want to delete the least amount:

DELETE p1
  FROM produto p1
       INNER JOIN produto p2 ON p1.produto = p2.produto
 WHERE p1.quant < p2.quant;

If you want to delete the larger quantity:

DELETE p1
  FROM produto p1
       INNER JOIN produto p2 ON p1.produto = p2.produto
 WHERE p1.quant > p2.quant;

If you want to group the records would look like this:

 SELECT p.produto,
        SUM(p.quant) AS quant
   FROM produto p
  GROUP BY p.produto;

If you want to group and then delete, do one solution after another:

 SELECT p.produto,
        SUM(p.quant) AS quant
   FROM produto p
  GROUP BY p.produto;

DELETE p1
  FROM produto p1
       INNER JOIN produto p2 ON p1.produto = p2.produto
 WHERE p1.quant < p2.quant;
    
16.08.2017 / 14:53