49 votes

Sélection de combinaisons distinctes.

J'ai une table qui a 2 champs (latitude, longitude) et beaucoup d'autres champs. Je veux sélectionner les combinaisons distinctes de latitude et de longitude à partir de ce tableau. quelle serait la requête pour cela?

80voto

SWeko Points 17524

Utilisez simplement distinct

 SELECT DISTINCT Latitude, Longitude 
  FROM Coordinates

Cela renverra des valeurs où la (Latitude, Longitude) est unique.

Cet exemple suppose que vous n'avez pas besoin des autres colonnes. Si vous en avez besoin, c'est-à-dire que la table a des Latitude, Longitude, LocationName , vous pouvez soit ajouter LocationName à la liste distincte, soit utiliser quelque chose du genre :

 SELECT Latitude, Longitude, MIN(LocationName)
  FROM Coordinates
  GROUP BY Latitude, Longitude

13voto

Dennis van Schaik Points 376

c'est un vieux post. mais je viens de tomber dessus en cherchant une réponse pour le même problème. La réponse ci-dessus n'a pas fonctionné pour moi, mais j'ai trouvé une autre solution simple en utilisant CONCAT () :

 SELECT *
FROM Coordinates
GROUP BY CONCAT(Latitude, Longitude);

Cela vous donnera toutes les combinaisons uniques Latitude / Longitude, sans aucune limitation à la partie sélectionnée de la requête.

2voto

Bax Points 643

Je pense qu'il s'agira de quelque chose :

 SELECT latitude, longitude 
FROM table_name t1 
INNER JOIN table_name t2 
WHERE t1.latitude <> t2.latitude OR t1.longitude <> t2.longitude

C'est le SELF INNER JOIN.

1voto

Bala Points 61
SELECT COLUMN1,COLUMN2 
FROM TABLE_NAME 
GROUP BY COLUMN1,COLUMN2 -- This will fetch the unique combinations

-- During this kind of selection it is always better to give a where condition so that the results are filtered before grouping

Votre code:

 SELECT Latitude, Longitude 
  FROM Coordinates
GROUP BY Latitude, Longitude  

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X