Quel est le but de distinct dans cette requête?

Aujourd'hui, je suis tombé sur une requête sur W3Schools ici: http://www.w3schools.com/sql/sql_view.asp qui a été écrit comme ci-dessous:

CREATE VIEW [Category Sales For 1997] AS SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales FROM [Product Sales for 1997] GROUP BY CategoryName 

Je me request quel est le but d'utiliser DISTINCT dans cette requête? La requête a déjà GROUPed BY l'set de résultats, donc il n'y a aucune chance de même CategoryName après avoir fait GROUP BY et avant de faire SELECT . Cette requête se comporterait-elle différemment si elle n'utilisait pas DISTINCT ? Je veux dire ce qui se passerait s'il était écrit simplement comme ceci:

 CREATE VIEW [Category Sales For 1997] AS SELECT CategoryName,Sum(ProductSales) AS CategorySales FROM [Product Sales for 1997] GROUP BY CategoryName 

Je vous remercie!

Vous pouvez l'enlever. C'est redondant et n'a aucun effet sur la sortie.

Comme vous l'avez correctement indiqué, GROUP BY renvoie déjà des valeurs distinctes pour les colonnes group-by. Comme cette colonne est incluse dans la list des colonnes sélectionnées de votre exemple, DISTINCT ne fournit aucune fonctionnalité supplémentaire.

En fonction de la requête (probablement pas dans ce cas), un DISTINCT inutile peut cependant nuire gravement aux performances, il est donc toujours judicieux de vérifier si DISTINCT est vraiment nécessaire dans toutes les requêtes.