Maison >base de données >tutoriel mysql >Comment sélectionner des lignes avec des ID en double et des valeurs de colonne uniques dans SQL ?

Comment sélectionner des lignes avec des ID en double et des valeurs de colonne uniques dans SQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-27 05:20:15997parcourir

How to Select Rows with Duplicate IDs and Unique Column Values in SQL?

Extraction de lignes avec des ID en double et des valeurs de colonnes distinctes

La requête :

Considérez le tableau suivant :

+------+------+
| ARIDNR | LIEFNR |
+------+------+
| 1     | A     |
+------+------+
| 2     | A     |
+------+------+
| 3     | A     |
+------+------+
| 1     | B     |
+------+------+
| 2     | B     |
+------+------+

Le but est de récupérer toutes les lignes où la colonne ARIDNR a des valeurs en double tandis que la colonne LIEFNR a des valeurs distinctes.

Solution :

Pour exécuter cette requête efficacement, suivez ces étapes :

SELECT *
FROM Table
WHERE ARIDNR IN (
    SELECT ARIDNR
    FROM Table
    GROUP BY ARIDNR
    HAVING COUNT(DISTINCT LIEFNR) > 1
)

Explication :

Cette requête utilise une sous-requête pour identifier les ARIDNR qui se produisent plus d'une fois. Dans la requête externe, il récupère toutes les lignes avec les ARIDNR identifiés.

  1. Sous-requête :

    • Il regroupe les lignes par ARIDNR.
    • La clause HAVING filtre les ARIDNR avec plus d'un LIEFNR distinct valeur.
  2. Requête externe :

    • La requête principale filtre la table pour inclure uniquement les lignes dont les ARIDNR satisfont à la sous-requête. condition.

Résultat :

La sortie de la requête sera :

+------+------+
| ARIDNR | LIEFNR |
+------+------+
| 1     | A     |
+------+------+
| 1     | B     |
+------+------+
| 2     | A     |
+------+------+
| 2     | B     |
+------+------+

Ce résultat capture avec succès toutes les lignes avec des ARIDNR en double et des valeurs LIEFNR distinctes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn