Requete : SQL DISTINCT - SQL/NoSQL - Programmation
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
Marsh Posté le 14-03-2007 à 15:00:13
come ça sinon :
SELECT DISTINCT Domain, Name, Department, Mail, Description, Groups FROM Table
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 ?
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
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
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
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 ....
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
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
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