Maison > base de données > tutoriel mysql > Comment trouver des lignes en double avec des valeurs différentes dans une colonne spécifique ?

Comment trouver des lignes en double avec des valeurs différentes dans une colonne spécifique ?

Mary-Kate Olsen
Libérer: 2024-12-28 03:20:10
original
604 Les gens l'ont consulté

How to Find Duplicate Rows with Different Values in a Specific Column?

Sélection de lignes en double avec des valeurs de colonne divergentes

Cette requête de base de données vise à identifier les lignes en double en fonction d'une colonne spécifique tout en ignorant les valeurs des autres colonnes. Considérez le scénario suivant :

 ------ ------ </p>
<table>
<thead><tr>
<th>ARIDNR</th>
<th>LIEFNR</th>
</tr></thead>
<tbody>
<tr>
<td>1</td>
<td>A</td>
</tr>
<tr>
<td>2</td>
<td>A</td>
</tr>
<tr>
<td>3</td>
<td>A</td>
</tr>
<tr>
<td>1</td>
<td>B</td>
</tr>
<tr>
<td>2</td>
<td>B</td>
</tr>
</tbody>
</table>
<p>

L'objectif est de sélectionner les valeurs ARIDNR qui apparaissent plus d'une fois avec des valeurs LIEFNR distinctes.

Solution

Pour y parvenir, nous pouvons utiliser les éléments suivants requête :

SELECT *
FROM Table
WHERE ARIDNR IN (
    SELECT ARIDNR
    FROM Table
    GROUP BY ARIDNR
    HAVING COUNT(DISTINCT LIEFNR) > 1
)
Copier après la connexion

Cette requête utilise une sous-requête imbriquée pour identifier les valeurs ARIDNR qui répondent aux critères spécifiés. La sous-requête regroupe les lignes par ARIDNR et applique la fonction COUNT(DISTINCT LIEFNR), qui calcule le nombre de valeurs LIEFNR uniques associées à chaque ARIDNR. Si le nombre dépasse 1, l'ARIDNR est ajouté à une table temporaire.

La requête principale sélectionne ensuite toutes les lignes de la table d'origine où les valeurs ARIDNR correspondent à celles identifiées par la sous-requête. Cela donne le résultat souhaité :

 ------ ------ </p>
<table>
<thead><tr>
<th>ARIDNR</th>
<th>LIEFNR</th>
</tr></thead>
<tbody>
<tr>
<td>1</td>
<td>A</td>
</tr>
<tr>
<td>1</td>
<td>B</td>
</tr>
<tr>
<td>2</td>
<td>A</td>
</tr>
<tr>
<td>2</td>
<td>B</td>
</tr>
</tbody>
</table>
<p>

Cette méthode capture efficacement les lignes en double avec des valeurs LIEFNR variables, répondant à l'exigence initiale.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal