OVH Cloud OVH Cloud

Requête avec UNION

2 réponses
Avatar
Oriane
Bonjour,

qqn saurait-il me faire une requ=EAte qui ram=E8ne toutes les lignes =
d'une table avec =E9limination des doublons sur une colonne pr=E9cise =
(non unique donc !) ?=20

Je ne sais pas si c'est possible vu que des lignes diff=E9rentes vont =
=EAtre pass=E9es =E0 la trappe (celles avec une m=EAme valeur pour cette =
colonne mais avec des valeurs diff=E9rentes pour les autres colonnes). =
Donc en quelque sorte ce n'est pas d=E9terministe car on ne sait pas =
quelles colonnes vont =EAtre suprim=E9es.
Ceci dit, on peut supposer que c'est =E9gal pour le concepteur.

A+

2 réponses

Avatar
Fred BROUARD
Il suffit de faire un max ou un min sur les colonnes non concernées par le
dédoublonnage.
Exemple :

CREATE TABLE T_PSEUDO_DOUBLONS
(COL1 INT,
COL2 INT)

INSERT INTO T_PSEUDO_DOUBLONS VALUES (1, 99)
INSERT INTO T_PSEUDO_DOUBLONS VALUES (2, 99)
INSERT INTO T_PSEUDO_DOUBLONS VALUES (3, 99)

INSERT INTO T_PSEUDO_DOUBLONS VALUES (4, 101)
INSERT INTO T_PSEUDO_DOUBLONS VALUES (5, 101)

INSERT INTO T_PSEUDO_DOUBLONS VALUES (6, 333)

SELECT MAX(COL1) AS COL1, COL2
FROM T_PSEUDO_DOUBLONS
GROUP BY COL2

Oriane a écrit:
Bonjour,

qqn saurait-il me faire une requête qui ramène toutes les lignes


> d'une table avec élimination des doublons sur une colonne précise
> (non unique donc !) ?

Je ne sais pas si c'est possible vu que des lignes différentes vont être passées à la trappe (celles avec une même valeur pour cette colonne mais avec des valeurs différentes pour les autres colonnes). Donc en quelque sorte ce n'est pas déterministe car on ne sait pas quelles colonnes vont être suprimées.
Ceci dit, on peut supposer que c'est égal pour le concepteur.

A+



--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Oriane
Merci !
"Fred BROUARD" a écrit dans le message de news:
Il suffit de faire un max ou un min sur les colonnes non concernées par le
dédoublonnage.
Exemple :

CREATE TABLE T_PSEUDO_DOUBLONS
(COL1 INT,
COL2 INT)

INSERT INTO T_PSEUDO_DOUBLONS VALUES (1, 99)
INSERT INTO T_PSEUDO_DOUBLONS VALUES (2, 99)
INSERT INTO T_PSEUDO_DOUBLONS VALUES (3, 99)

INSERT INTO T_PSEUDO_DOUBLONS VALUES (4, 101)
INSERT INTO T_PSEUDO_DOUBLONS VALUES (5, 101)

INSERT INTO T_PSEUDO_DOUBLONS VALUES (6, 333)

SELECT MAX(COL1) AS COL1, COL2
FROM T_PSEUDO_DOUBLONS
GROUP BY COL2

Oriane a écrit:
Bonjour,

qqn saurait-il me faire une requête qui ramène toutes les lignes


> d'une table avec élimination des doublons sur une colonne précise
> (non unique donc !) ?

Je ne sais pas si c'est possible vu que des lignes différentes vont être passées à la trappe (celles avec une même valeur pour cette colonne mais avec des valeurs différentes pour les autres colonnes). Donc en quelque sorte ce n'est pas déterministe car on ne sait pas quelles colonnes vont être suprimées.
Ceci dit, on peut supposer que c'est égal pour le concepteur.

A+



--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************