Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Unterscheidbar nur in einer Spalte - nur ERSTE doppelte Zeile anzeigen

Sie sollten wahrscheinlich eine weitere Spalte hinzufügen. Jetzt ist es möglich, mit GROUP BY einen eindeutigen Datensatz für jede account_id zu erhalten -Klausel, aber die Ergebnisse aller nicht aggregierten Spalten können mehrdeutig sein. Sie müssen eine Reihenfolge haben, die Sie genehmigen, oder einen Indikator innerhalb der Gruppe, um zu bestimmen, welcher Datensatz für jede accout_id "erster" ist. Mit der Spaltenmarkierung, welcher Datensatz in jeder Gruppe der erste ist, ist die Abfrage einfach. Ohne sie müssen Sie eine Reihenfolge akzeptieren, die die Abfrage angibt, welcher Datensatz "erster" ist. Ein Beispiel für die alphabetische Reihenfolge von full_name:

SELECT account_id, 
       full_name, 
       email, 
       login, 
       phone, 
       updated_at, 
       last_request_at, 
       unconfirmed_email 
  FROM table1 WHERE full_name IN (
    SELECT MIN(full_name) 
      FROM table1 
      GROUP BY account_id 
      WHERE id < '300'
  )