gpt4 book ai didi

mysql - 在 MYSQL 中临时对行进行分组

转载 作者:行者123 更新时间:2023-11-30 22:41:43 25 4
gpt4 key购买 nike

我正在尝试创建一个临时列,为每组五个结果提供一个数字,以便我可以分组...我在尝试弄清楚如何执行此操作时遇到了很多麻烦。

我不想考虑任何标准,我希望 sql 将它看到的前五个结果计为 GroupNumber 1,接下来的五个结果计为 GroupNumber2,依此类推。

这是一些示例数据 -

Fruits  Ordered  Date
Orange 4 2015-05-01 00:01:01
Orange 2 2015-05-01 00:01:05
Orange 20 2015-05-01 15:15:00
Apple 30 2015-05-02 16:20:01
Apple 40 2015-05-02 17:01:27
Apple 24 2015-05-02 21:01:33
Apple 19 2015-05-02 18:01:01
Apple 22 2015-05-02 19:00:05

现在,我知道我可以通过将 DATETIME 列转换为 DATE 列来对这些数据进行分组,但这不是我特别需要的,如果可能的话我不想将日期带入其中。

GROUP BY 之前想要的结果是这样的 - -

Fruits  Ordered  Date                GroupNumber
Orange 4 2015-05-01 00:01:01 1
Orange 2 2015-05-01 00:01:05 1
Orange 20 2015-05-01 15:15:00 1
Apple 30 2015-05-02 16:20:01 1
Apple 40 2015-05-02 17:01:27 1
Apple 24 2015-05-02 21:01:33 2
Apple 19 2015-05-02 18:01:01 2
Apple 22 2015-05-02 19:00:02 2

非常感谢任何建议!

最佳答案

您可以使用变量来做到这一点:

select s.*,
floor( ((@rn := @rn + 1) - 1) / 5) as group_number
from sample s cross join
(select @rn := 0) params
order by date;

关于mysql - 在 MYSQL 中临时对行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30980149/

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