gpt4 book ai didi

mysql - 按任意行数对 SQL 查询进行分区

转载 作者:可可西里 更新时间:2023-11-01 08:36:19 26 4
gpt4 key购买 nike

我有一个定期测量的 SQL 表。我希望能够一次针对任意数量的行在值列上返回一些汇总方法(比如 SUM)。所以如果我有

id  |  reading
1 10
5 14
7 10
11 12
13 18
14 16

我可以一次对 2 行求和,得到 (24, 22, 34),或者我可以一次对 3 行求和,得到 (34, 46),如果这有意义的话。请注意,ID 可能不连续——我只想按行数按排序顺序进行操作。

在现实世界中,标识符是时间戳,但我认为(可能在应用 unix_timestamp() 调用之后)任何适用于上述简单情况的东西都应该适用。如果这很重要,我正在尝试优雅地缩放为绘图查询返回的结果数量——也许有更聪明的方法来做到这一点?我希望解决方案是通用的,而不是对数据强加特定的存储机制/模式。

最佳答案

您可以对查询结果进行重新排序,然后对其进行分组

SET @seq = 0;

SELECT SUM(data), ts FROM (
SELECT @seq := @seq + 1 AS seq, data, ts FROM table ORDER BY ts LIMIT 50
) AS tmp GROUP BY floor(tmp.seq / 3);

关于mysql - 按任意行数对 SQL 查询进行分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11018253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com