2016-04-29 63 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的前五条记录等等。 –