我有一个定期测量的SQL表。我希望能够在值列上返回一些汇总方法(比如说SUM),一次可以返回任意数量的行。所以,如果我有通过任意数量的行对SQL查询进行分区
id | reading
1 10
5 14
7 10
11 12
13 18
14 16
我可以一次总结超过2行,得到(24,22,34),我也可以在同一时间总结3行获得(34,46),如果使感。请注意,ID可能不是连续的 - 我只是想按行计数操作,按照排序顺序。
在现实世界中,标识符是一个时间戳,但我认为(可能在应用unix_timestamp()
调用后)任何适用于上述简单情况的东西都应该适用。如果它很重要,我会优雅地缩放为情节查询返回的结果数量 - 也许有更聪明的方法来做到这一点?我希望解决方案是一般的,而不是在数据上强加特定的存储机制/模式。
,这将是与用户定义的聚合函数的窗口函数。 – Randy
也检查'ntile' – Randy
不知道我跟着 - 你按列分组,而不是行。如果你想要任意数量的行,肯定会成为'WHERE'(或'HAVING')子句中的一个参数? – Widor