gpt4 book ai didi

SQL整数除法余数

转载 作者:行者123 更新时间:2023-12-01 22:50:26 27 4
gpt4 key购买 nike

这是我的情况:假设我有 7 顶帽子。

Month       Hats
1 7

在我的 select 语句中,我需要将其除以 3 并且我不能有部分帽子。我想要 3 个具有以下值的记录:

Week     Hats
1 2
2 2
3 3

用正常的四舍五入我会结束

Week     Hats
1 2
2 2
3 2

我不能有这个,因为我刚丢了一顶帽子。如何将商的余数赋给一条记录(我不在乎是什么记录)?

最佳答案

有趣的问题。您可以仅使用 SQL 来执行此操作。这个想法是将帽子的数量分配为整数。然后,每周增加一顶帽子,直到达到所需的总数。

这是针对您建议的数据完成此操作的查询:

with weeks as (
select 1 as w union all select 2 union all select 3
),
const as (
select 7 as numhats,
(select count(*) from weeks) as numweeks
)
select w,
((numhats / numweeks) +
(case when row_number() over (order by w) <= numhats % numweeks
then 1
else 0
end)
) as hats
from weeks cross join
const;

请注意,这会将额外的帽子放在前几周而不是最后几周。您可以使用 order by w desc 而不是 order by w 将它们放在最后几周。

关于SQL整数除法余数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21142237/

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