Requete : SQL DISTINCT

Requete : SQL DISTINCT - SQL/NoSQL - Programmation

Marsh Posté le 14-03-2007 à 14:46:56    

Salut, je suis un peut perdu alors dje vous explique ce que j'aimerais bien obtenir.

 

En gait, j ai une table :


Domain    Name    Department    Mail    Description    Groups
EUR        TOTO    Dep1             t@t    tutu             group1
EUR        TATA    Dep2             a@a    mimi             group4
EUR        TOTO    Dep1             t@t    tutu             group2


J'aurrais besoin que la requete SQL me remonte toute les lignes differente, mais sans prendre en compte le Groups

 

en resultat, j aurrais donc :

Domain    Name    Department    Mail    Description    Groups
EUR    TOTO    Dep1        t@t    tutu        group1
EUR    TATA    Dep2        a@a    mimi        group4


c est faisable ?

 


Message édité par Z_cool le 14-03-2007 à 14:51:38

---------------
#mais-chut
Reply

Marsh Posté le 14-03-2007 à 14:46:56   

Reply

Marsh Posté le 14-03-2007 à 14:56:01    

SELECT Domain, Name, Department, Mail, Description, Groups FROM Table GROUP BY Domain, Name, Department, Mail, Description

Reply

Marsh Posté le 14-03-2007 à 15:00:13    

come ça sinon :
 
SELECT DISTINCT Domain, Name, Department, Mail, Description, Groups FROM Table

Reply

Marsh Posté le 14-03-2007 à 15:03:43    

ajnag a écrit :

come ça sinon :

 

SELECT DISTINCT Domain, Name, Department, Mail, Description, Groups FROM Table


mais il va faire le DISTINCT uniquement sur le champ domain non avec ca ?

Reply

Marsh Posté le 14-03-2007 à 15:13:17    

Z_cool a écrit :

mais il va faire le DISTINCT uniquement sur le champ domain non avec ca ?


 
oui. Pour faire un DISTINCT sur toutes les colonnes sauf groups, il faut faire SELECT DISTINCT (Domain, Name, Department, Mail, Description), Groups FROM Table  
 
Dixit MagicBuzz, le DISTINCT est à éviter car ralentit considérablement le sgbd dans le cas de grosses tables. D'où ma proposition avec le group by ;)
 

Reply

Marsh Posté le 14-03-2007 à 15:16:16    

rufo a écrit :

oui. Pour faire un DISTINCT sur toutes les colonnes sauf groups, il faut faire SELECT DISTINCT (Domain, Name, Department, Mail, Description), Groups FROM Table

 

Dixit MagicBuzz, le DISTINCT est à éviter car ralentit considérablement le sgbd dans le cas de grosses tables. D'où ma proposition avec le group by  ;)


ok, merci

 

pour le ralentissement, c est pas un problème c est a peut pres l unique tache de la machine qui va exécuter cette requête une fois/mois voir une fois/semaine


Message édité par Z_cool le 14-03-2007 à 15:17:26
Reply

Marsh Posté le 14-03-2007 à 15:17:25    

je savais que le traitement au niveau du moteur sgbd etait different, mais je ne savais pas comment :D
 

Reply

Marsh Posté le 15-03-2007 à 08:49:25    

Hummm j ai a nouveau un problème avec cette requête ....
 
les terme Domain et Groups semble entre des mots clef de SQL ....

Reply

Marsh Posté le 15-03-2007 à 11:16:58    

euh...
 
1/ DISTINCT est en effet à éviter. Mais de là à le remplacer par un GROUP BY, vade retro :o
 
2/ DISTINCT porte TOUJOURS sur TOUS LES CHAMPS du select
 
3/ Si le DISTINCT ne doit donc pas prendre en compte le group, alors il faut le virer du SELECT
 
4/ Sous MYSQL, il y a une fonction qui permet de regrouper sous forme de liste toutes les valeurs d'un champ. A ce moment, il faudra utiliser GROUP BY en effet, puisqu'il s'agit d'une fonction de regroupement

Reply

Marsh Posté le 15-03-2007 à 11:20:32    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed