2016-04-29 61 views
-1

我如何通過ID找到點列 和組最低五點總和的總和五個最低值

Table

期望的結果應該是;

Results

不知道從哪裏開始

感謝

+2

你只想要表中的前五個點,或者每個ID的前五個點? –

+3

它通常有助於顯示所需的結果。 (如果將表格作爲文本發佈,而不是作爲圖片發佈,那麼我們可以複製和粘貼以處理數據。) –

+0

感謝Thorsten指出這一點,我編輯了問題以顯示期望的結果 – Sandet

回答

2
select a.ID, SUM(a.points) from(select ID , points,row_number() over 
    (partition by ID order by POINTS) as rownum_returned from your_table) a where 
a.rownum_returned<6 group by a.ID; 

Read about row_number() function here

+0

@MartinSmith,謝謝指出。編輯。 –

+0

謝謝,這解決了我的問題 – Sandet

0

如果我這樣做,我會使用子查詢解決。 在SQL服務器我會做子查詢檢索低5點

Select Top 5 id, point from table 
Order by point asc 

注:關鍵字TOP的結果限制爲前5 注2:爲了逐點asc訂貨會的結果將在頂部最低值

現在我使用查詢作爲子查詢,以完成該活動

Select id, sum (point) from 
(Select top 5 id,point from table order by point asc) group by id 

這應該工作

+0

如果我明白你說的正確,這隻會獲取數據庫中的前五個記錄。它不會獲取ID 1的前五條記錄,然後獲取ID 2的前五條記錄等等。 –