Re: [SQL]emploie de DISTINCT
Citation:
Envoyé par fabszn
Est ce que l'emploi du distinct est recommandé?
Seulement quand c'est nécessaire... donc lorsqu'on peut avoir des lignes en double dans le résultat alors qu'on ne le désire pas
Citation:
Envoyé par fabszn
Ou alors si on en vient à utiliser distinct c'est qu'il y a un souci dans la requête?
Non, il n'y a pas de souci... c'est seulement qu'on en a besoin.
Code:
1 2
| select distinct champ1, .. , champN
from matable |
est équivalent à
Code:
1 2 3
| select champ1, .. , champN
from matable
group by champ1, .. , champN |
donc peut être coûteux quand il n'est pas utile
Re: [SQL]emploie de DISTINCT
Citation:
Envoyé par remika
franchement ça sert bien et tu es souvent obligé de l'utiliser
tsst tsst. Pour débugger une requête ou une faire recherche rapide dans SQL*Plus ou Query Analyzer, DISTINCT est très pratique. Mais pour des développements DISTINCT est absolument déconseillé.
Citation:
Envoyé par fabszn
Ou alors si on en vient à utiliser distinct c'est qu'il y a un souci dans la requête?
En effet on voit souvent des requêtes mal écrites avec des doublons à la pelle à cause de jointures oubliées, d'un problème de logique, de niveaux d'agrégation mal étudiés entre plusieurs tables qui ont souvent été résolues à l'arrache avec un DISTINCT.
En théorie c'est quand on en a besoin et c'est plus rapie à écrire qu'un group by, en pratique le DISTINCT est souvent malheureusement mal utilisé . D'ailleurs un DISTINCT fait un group by de tout les champs tandis que le group by permet de ne prendre que les dimensions et d'agréger les indicateurs (SUM,MAX,..), ce que ne sait pas faire le distinct.