sql >> Databáze >  >> RDS >> Mysql

Vybrat duplikáty z jednoho řádku?

To by dostalo inverzní (tj. přeskočit duplikáty):

SELECT c1.*
  FROM CoreTracks c1
      ,(SELECT Title, ArtistID, MAX(FileSize) AS maxFileSize, MAX(BitRate) maxBitRate
          FROM CoreTracks
          GROUP BY Title, ArtistID) c2
  WHERE c1.Title = c2.Title
    AND c1.ArtistID = c2.ArtistID
    AND (c1.FileSize = c2.maxFileSize OR c1.BitRate = c2.maxBitRate)

A duplikáty:

SELECT c1.*
  FROM CoreTracks c1
      ,(SELECT Title, ArtistID, MAX(FileSize) AS maxFileSize, MAX(BitRate) maxBitRate
          FROM CoreTracks
          GROUP BY Title, ArtistID) c2
  WHERE c1.Title = c2.Title
    AND c1.ArtistID = c2.ArtistID
    AND (c1.FileSize != c2.maxFileSize AND c1.BitRate != c2.maxBitRate)


  1. Data uložena dvakrát v databázi MySQL. Nevíte, co dělám špatně?

  2. Simulujte ORDER BY v SQLite UPDATE, abyste zvládli omezení jedinečnosti

  3. převádění řádků tabulky na sloupce v mysql

  4. Výhody a nevýhody používání SqlCommand Prepare v C#?