当前位置: 首页 > 面试题库 >

选择行,直到满足一列的总金额(mysql)

李宁
2023-03-14
问题内容

我已经在SF中看到了这个问题,但是我是菜鸟,只是无法让我的头脑变得模糊。因此,如果您想重复,请原谅我。

我的样品表

--------------------------
ID | 供应商| 数量
--------------------------
1 1 2
2 1 2
3 2 5
4 3 2
5 1 3
6 2 4

我需要获取“ UNTIL”行,对于特定的供应商ID,“ QTY”的累计总数按降序等于或大于5。

在此示例中,对于供应商1,它将是ID为5和2的行。

    ID-唯一主键
    供应商-外键,还有另一张供应商信息表。
    数量-双倍

问题答案:

这个怎么样?使用两个变量。

SQLFIDDLE演示

询问:

set @tot:=0;
set @sup:=0;

select x.id, x.supplier, x.ctot
from (
select id, supplier, qty,
@tot:= (case when @sup = supplier then
@tot + qty else qty end) as ctot,
@sup:=supplier
from demo
order by supplier asc, id desc) x
where x.ctot >=5
;

| ID | SUPPLIER | CTOT |
------------------------
|  2 |        1 |    5 |
|  1 |        1 |    7 |
|  3 |        2 |    5 |


 类似资料:
  • 问题内容: iv在jqgrid中看到了@Oleg的行总和示例,但我尝试应用它,但它无法正常工作,我有以下网格,我需要为其计算金额值。 请奥列格(Oleg)帮助,我已经尝试了您的示例,但是由于某些原因它没有起作用。 问题答案: 如果我理解的正确,则希望将其放置在页脚getCol和footerData方法中: 该可用于从“量”柱,并且尊重计算所有数字的总和,你可以在底部放置列中的文本“总计:”和在底部

  • 问题内容: 给定以下示例表架构 客户表 发票表 目的是选择InvoiceID值为10和20(非OR)的所有客户。因此,在此示例中,将返回带有CustID = 1和2的客户。 您将如何构造SELECT语句? 问题答案: 使用: 关键是需要计数等于子句中参数的数量。 的使用是在对帐务编号和发票编号的组合没有唯一约束的情况下- 如果没有重复的机会,则可以从查询中省略DISTINCT:

  • 我有一个用户批次表。我只想选择,直到我的总金额达到一定金额。 考虑以下查询: 查询结果为: 我想在表格上做一个选择,直到余额总数为6。然后只返回id 1,2: 余额总计为1的另一个示例。那么应该只返回ids 1: 余额合计为11的示例。应该只返回ids,3,4: 所以,在那之后,我需要用FORUPDATE ex锁定这些行: 我尝试了窗口功能,但它不允许锁定(更新)。感谢任何帮助。

  • 问题内容: 我试图改变我的思维,以考虑功能性方法,最近遇到了一种情况,我需要从列表中选取元素,直到满足条件为止,而我找不到实现这一目标的简便方法。显然我还在学习。 说我有这个清单: 预先感谢您的输入 注意:在发布此内容之前,我阅读了通过谓词限制流,但是我看不到如何使该答案适应我的问题。任何帮助,将不胜感激谢谢。 问题答案: 一个选项使用需要两个函数的收集器,一个函数将字符串添加到列表,另一个函数合

  • 问题内容: 这是我无法弄清楚的非常基本的查询。 假设我有一个两列的表格,如下所示: 我想获取所有具有1、2和3的不同用户ID 。使用上面的示例,我要返回的唯一结果是1。我该怎么做? 问题答案: 任何人阅读本:我的答案是简单明了的,并得到了“接受”的地位,但请不要去阅读答案通过@cletus给出。它具有更好的性能。 只是大声思考一下,@ cletus所描述的编写自联接的另一种方法是: 这对您来说可能

  • 我试图改变我的想法,以功能的方式思考,最近面临着这样一种情况,我需要从列表中提取元素,直到满足一个条件,我找不到一个简单自然的方法来实现这一点。显然我还在学习。 假设我有这个清单: 提前感谢您的投入 注意:在发布这篇文章之前,我读了用谓词限制流,但是我不知道如何调整这个答案来解决我的问题。任何帮助将不胜感激。