2017-04-07 157 views
0

我似乎無法弄清楚發生了什麼問題。我嘗試了查詢的子部分,但仍然無法解決問題。錯誤:在「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

回答

1

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