2014-05-25 19 views
0

如何將SUM函數用於存儲在不同分段(一個對象的多個記錄)中的對象。我嘗試按長度使用sum(length(t1.segments))對它們進行排序,但只得到一個記錄作爲答案,即所有對象的長度都在一箇中。只要我嘗試在查詢中包含對象ID,就會出現錯誤。將SUM用於存儲在不同分段中的對象

SELECT sum(length(t1.segments)) AS length 
FROM t1 

這就是工作,這裏我得到一個答案(所有對象段的長度)。

SELECT t1.object_ID, sum(length(t1.segments)) AS length 
FROM t1 
ORDER BY length DESC 

這不再工作。即使我放棄ORDER BY部分,只是試圖在查詢中包含對象ID,但它不起作用。

+1

如果你的第二個查詢工作,那麼我猜底層數據庫爲MySQL。 –

+0

你有Postgis作爲標籤,你是在談論線段,例如,從點2到點3? –

回答

2

你需要一個group by聲明:

SELECT t1.object_ID, sum(length(t1.segments)) AS length 
FROM t1 
GROUP BY t1.object_ID 
ORDER BY length DESC; 
+0

現在差​​不多有4個問題需要添加組的答案:) –

+0

@echo_Me。 。 。我總是想知道如何自動識別這些問題。答案對於人類來說真的很明顯,但在算法上不太明顯。 –

相關問題