错误:在“DISTINCT”附近:语法错误

问题描述:

我似乎无法弄清楚发生了什么问题。我尝试了查询的子部分,但仍然无法解决问题。错误:在“DISTINCT”附近:语法错误

表格式:

poi(id int, minX float, minY float, maxX float, maxY float) 
tag(poi_id int, key text, value text) 


SELECT (DISTINCT(tag.key,tag.value), (poi.minlon*poi.minlat) 
FROM tag,poi 
WHERE tag.poi_id=tag.poi_id 
GROUP BY tag.key,tag.value; 
+0

删除tag.key,tag.value周围的括号。另外,删除SELECT和DISTINCT之间的左括号。 – kojow7

DISTINCT不是一个函数,并且不带参数。它也必须紧跟在SELECT关键字之后。试试这个:

SELECT DISTINCT tag.key, tag.value, (poi.minlon*poi.minlat) 
FROM tag,poi 
WHERE tag.poi_id=tag.poi_id 
GROUP BY tag.key,tag.value; 

DISTINCT适用于返回的整个元组(行),而不是单个列中的值。

+0

我在想那个。想知道DISTINCT是否会干扰乘法结果? – Newbie

+0

如果包括计算结果在内的每一列都存在重复值,则重复行将从最终结果中删除,只留下该行的一次。 – kojow7

+0

您应该能够设置一个简单的测试来验证这一点。提供两个具有相同值的tag.key和tag.value记录,然后将minlon和minlat设置为第一条记录的值为(5,10),第二条记录的值为(2,25)。 – kojow7