选择不同的组合。

时间:2011-07-29 08:17:11

标签: sql

我有一张表有2个字段(纬度,经度)和许多其他字段。 我想从这张表中选择纬度和经度的不同组合。 对此有什么疑问?

4 个答案:

答案 0 :(得分:57)

只需使用不同的

SELECT DISTINCT Latitude, Longitude 
  FROM Coordinates

这将返回(Latitude, Longitude)组合唯一的值。

此示例假设您不需要其他列。如果您确实需要它们,即表格中包含Latitude, Longitude, LocationName列,您可以将LocationName添加到不同的列表中,或者使用以下内容:

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

答案 1 :(得分:11)

这是一个老帖子。但我在寻找同样问题的广告时遇到过它。上面的答案对我不起作用,但我找到了另一个使用CONCAT()的简单解决方案:

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

这将为您提供所有独特的纬度/经度组合,对查询的选择部分没有任何限制。

答案 2 :(得分:1)

我认为这将是关于:

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

这就是SELF INNER JOIN。

答案 3 :(得分:0)

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

您的代码:

SELECT Latitude, Longitude 
  FROM Coordinates
GROUP BY Latitude, Longitude