关于聚合和排序的困难sql
我想为下面的问题提供一些帮助,谢谢 原始表格:关于聚合和排序的困难sql,sql,database,sql-order-by,aggregate-functions,Sql,Database,Sql Order By,Aggregate Functions,我想为下面的问题提供一些帮助,谢谢 原始表格: id, mark 1, 3 2, 4 3, 5 4, 10 5, 14 结果表 id, mark 1, 36 2, 33 3, 29 4, 24 5, 14 如何使用sql从原始表中获取结果表? 我注意到结果表中的mark字段是其他字段的总和,但不知道如何实现这一点。这似乎很简单。试试这个 SELECT t1.id, Sum(t2.mark) FROM originaltable t1 JOIN origi
id, mark
1, 3
2, 4
3, 5
4, 10
5, 14
结果表
id, mark
1, 36
2, 33
3, 29
4, 24
5, 14
如何使用sql从原始表中获取结果表?
我注意到结果表中的mark字段是其他字段的总和,但不知道如何实现这一点。这似乎很简单。试试这个
SELECT t1.id,
Sum(t2.mark)
FROM originaltable t1
JOIN originaltable t2
ON t1.id <= t2.id
GROUP BY t1.id
ORDER BY t1.id ASC
选择t1.id,
总和(t2马克)
从原始可转换t1
连接原始t2
在t1.id上,如果您的DBMS支持分析函数,则这是使用分析函数的好例子:
select id,
sum(mark) over (order by id desc)
from Original
@SergioTulentsev谢谢,Sergio.您使用的是哪种数据库管理系统?博士后?Oracle?使用MySql数据库。sql运行良好。谢谢我只是想知道如果id列包含string而不是number,是否仍然可以得到结果。例如,id:ken,Tom,Cat,…etcDmitry的解决方案在大型表上的性能要比公认的答案好得多(如果您使用的是现代DBMS)。