0
votes

SQL Server: Trouvez un enregistrement en double par la valeur de colonne

J'ai une valeur comme ci-dessous DataSet. Maintenant, comment je peux trouver le Duplicate DataSetid comme: 201 & 401 est un enregistrement en double.

 Entrez la description de l'image ici


0 commentaires

4 Réponses :


0
votes

concat les colonnes et appliquer groupe par . xxx

voir DBFIDDLE .


5 commentaires

Désolé, je peux être je ne te comprends pas. Où puis-je utiliser le groupe par? J'exécute la requête et obtenez l'erreur de type: la colonne 'Tablea' n'est pas valide dans la liste Select, car elle n'est pas contenue dans une fonction d'agrégat ou le groupe par clause.


@Riad, groupe de groupe Groupera le Count () par même Concat (Datasetid, Columna, colonne)


@metal, pourriez-vous mettre à jour la requête. N'arrêtez toujours pas de vous et faites face à l'erreur.


@metal: colonne 'Tablea.DatesTid' n'est pas valide dans la liste Select car il n'est pas contenu dans une fonction globale ou le groupe par clause.


@riad, pouvez-vous essayer dbfiddle j'ai fourni.



3
votes

Utiliser pivot code> et row_number code>

pour les non-doublons strong> p>

Démo FIDDLE STRUT> P>

SELECT T.* FROM Tbl T JOIN (
SELECT DatasetID, ColumnA, ColumnB
FROM 
(
   SELECT DatasetID, [Name], [Age], [Gender], ROW_NUMBER() OVER (PARTITION BY [Name], [Age], [Gender] ORDER BY DatasetID) RN
   FROM  (SELECT * FROM Tbl) AS SourceTable  
    PIVOT(MAX(ColumnB) FOR ColumnA IN ([Name], [Age], [Gender])) AS PivotTable
)Tmp 
UNPIVOT
(
    ColumnB
    FOR ColumnA in ([Name], [Age], [Gender])
) AS UnpivotOp
WHERE RN > 1
)X ON T.ColumnA = X.ColumnA AND T.ColumnB = X.ColumnB;


2 commentaires

@Reddevil Désolé, j'ai pensé à éliminer les doublons. J'ai mis à jour maintenant.


Merci pour vos ans. ça marche bien. Mais, j'ai besoin d'une autre requête. Ajuster: Si tout l'enregistrement de la colonne est identique, renvoyez le DataSetid.Mean, si la valeur du nom, de l'âge et du sexe de toutes les colonnes est la même alors que le DataSetide retourne. Dans la requête actuelle, si une valeur d'une seule est égale à d'autres, réactivez le datasetide. Si vous modifiez la valeur de l'âge à 36 (quelle imageId = 5), toute la valeur de jeu de données indique 201 301 401. Mais j'ai besoin du DataSetide (201, 401) si toute la valeur du nom, de l'âge et du genre est identique.Merci est avancée.



0
votes

écrire indiquer ci-dessous Query et trouver la valeur duplicate dans le tableau

Sélectionnez Distinct Prénom, Nom, Mobileno du client;


0 commentaires

1
votes

Vous devez compter les lignes pivotées à l'aide de la fenêtre des rangées Ubounded (par défaut) xxx

FIDDLE


0 commentaires