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

Distinto su una sola colonna:visualizza solo la PRIMA riga duplicata

Probabilmente dovresti aggiungere un'altra colonna. Ora è possibile ottenere record distinti per ogni account_id utilizzando GROUP BY ma i risultati di tutte le colonne non aggregate possono essere ambigui. Devi avere un ordine che approvi o indica all'interno del gruppo per determinare quale record per ogni accout_id è "first". Con la marcatura delle colonne quale record in ogni gruppo è la prima query è semplice. Senza di esso devi accettare un ordine che dice alla query quale record è "primo". In ordine alfabetico di esempio di nome_completo:

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'
  )