sql >> Database teknologi >  >> RDS >> Mysql

SQL-sætning til at vælge duplikerede poster, der vises mere end 2 gange

SELECT t.rid
     , t.id
     , t.sku
     , t.name
  FROM test t
  JOIN ( SELECT s.sku 
           FROM test s 
          GROUP BY s.sku
         HAVING COUNT(1) > 1
       ) d
    ON d.sku = t.sku

Den indbyggede visning kaldet d returnerer de sku-værdier, der vises mere end én gang i tabellen. Vi kan sammenføje resultaterne af den forespørgsel til tabellen for at få alle rækker, der har en sku, der matcher.

Er id og sku udskiftelig? Det var ikke klart for mig. (Hvis id er afhængig af sku og sku er afhængig af id , så kan du erstatte referencer til sku med referencer til id i den forespørgsel.



  1. Sådan fungerer MAKETIME() i MariaDB

  2. Ingen operator matcher det givne navn og argumenttype(r). Du skal muligvis tilføje eksplicitte casts. -- Netbeans, Postgresql 8.4 og Glassfish

  3. ORDER BY-elementer skal vises i valglisten, hvis sætningen indeholder en UNION-, INTERSECT- eller EXCEPT-operator (SQL-server)

  4. Tæl alle poster fra databasen, hvor forfaldsdatoen matcher dagens dato