gpt4 book ai didi

mysql - 选择表的第一行(其中有一列的值之和小于输入值的 int 值

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:01 28 4
gpt4 key购买 nike

在这种情况下,我的输入是 5,我想选择前两行,删除第一行并更新第二行,输入值 7 而不是 10

enter image description here

我尝试执行此查询,但这还不够:

SELECT SUM(`Qty in acquisto`) AS total,`Prezzo in acquisto` 
FROM `book`
GROUP BY `Qty in acquisto`
HAVING COUNT(*) >5

最佳答案

您可以使用变量来获取感兴趣的行,以及更新记录所需的信息:

SELECT *
FROM (
SELECT `Qty in acquisto`,
`Prezzo in acquisto`,
@take := least(`Qty in acquisto`, @needed) as taken,
`Qty in acquisto` - @take as adjusted_acquisto,
@needed := @needed - @take as still_needed
FROM book,
(select @needed := 5) as init
ORDER BY `Prezzo in acquisto` DESC) base
WHERE taken + still_needed > 0

样本数据的输出是:

| Qty in acquisto | Prezzo in acquisto | taken | adjusted_acquisto | still_needed |
|-----------------|--------------------|-------|-------------------|--------------|
| 2 | 1000 | 2 | 0 | 3 |
| 10 | 960 | 3 | 7 | 0 |

参见 SQL fiddle

在最内层的查询中,使用别名 init,传递所需的书籍数量(示例中为 5)。

因此,在 adjusted_acquisto 列中,您可以找到执行删除和更新所需的值:

如果该值为0,则删除相应的记录。

如果该值不为 0,则用该值更新数量。

关于mysql - 选择表的第一行(其中有一列的值之和小于输入值的 int 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39183537/

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