Mysql
 sql >> Base de données >  >> RDS >> Mysql

Distinct sur une seule colonne - n'affiche que la PREMIÈRE ligne en double

Vous devriez probablement ajouter une autre colonne. Il est maintenant possible d'obtenir un enregistrement distinct pour chaque account_id en utilisant GROUP BY mais les résultats de toutes les colonnes non agrégées peuvent être ambigus. Vous devez avoir une commande que vous approuvez ou un indicateur à l'intérieur du groupe pour déterminer quel enregistrement pour chaque compte_id est "premier". Avec le marquage des colonnes, quel enregistrement de chaque groupe est la première requête est simple. Sans cela, vous devez accepter une requête indiquant quel enregistrement est "le premier". Par exemple l'ordre alphabétique de 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'
  )