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

如何获得大于一定数量的总和

逄嘉木
2023-03-14
问题内容

我想使用一个SQL,使接收者的接收数量> = 1024,转移数量<= 3。

约翰逊之所以被列出是因为列出了约翰逊帐户,因为它在以下三个转账中收到了1112美元:512美元+ 100美元+
500美元,泰勒进行了1次转账1024美元。威廉姆斯不在,因为他在四笔交易中收到1200美元。

我尝试

Select recipient as account_name from transfers group by recipient 
having sum(amount)>=1024  and count(amount)<=3

它不能正常工作。我正在使用PostgreSQL,SQLLites语法也很好。

随附表和行的创建,为您提供方便

 create table transfers (
      sender varchar(1000) not null,
      recipient varchar(1000) not null,
      date date not null,
      amount integer not null
  );

insert into transfers values('Smith','Taylor',convert(date,'2002-09-27'),'1024')
insert into transfers values('Smith','Johnson',convert(date,'2005-06-26'),'512')
insert into transfers values('Williams','Johnson',convert(date,'2010-12-17'),'100')
insert into transfers values('Williams','Johnson',convert(date,'2004-03-22'),'10')
insert into transfers values('Brown','Johnson',convert(date,'2013-03-20'),'500')
insert into transfers values('Johnson','Williams',convert(date,'2007-06-02'),'400')
insert into transfers values('Johnson','Williams',convert(date,'2005-06-26'),'400')
insert into transfers values('Johnson','Williams',convert(date,'2005-06-26'),'200')

问题答案:

使用row_number()和派生表将每笔recipient收入限制在前三位,然后通过recipient返回sum(amount)>=1024

select recipient as account_name
from (
  select * 
    , row_number() over (
        partition by recipient
        order by amount desc
        ) as rn
  from transfers
  ) as i
where rn < 4
group by recipient
having sum(amount)>=1024

返回:

+--------------+
| account_name |
+--------------+
| Johnson      |
| Taylor       |
+--------------+

rextester postgres演示:http
://rextester.com/PFR74297

对问题进行了编辑,从问题的第3修订版中删除了一些相关信息:已经尝试过什么。

我尝试

Select recipient as account_name from transfers group by recipient
having sum(amount)>=1024 and count(amount)<=3

它不能正常工作。

根据这些信息,我得出结论,OP希望从接收者的任何转移recipients中获得sum(amount)>=10243个或更少的收款人-
不限于转移次数小于或等于3的那些接收者sum(amount)>=1024



 类似资料:
  • 问题内容: 不知道这是否可能。 但是,假设我在表中有一个像这样的列: 有些是个人尺寸,有些是表壳尺寸。 是否可以获得每一行的总重量?如果是这样,将如何做? 例如 问题答案: 通过@Tomalak添加到注释中,下面是一个示例脚本,您可以使用该脚本来填充重量表达转换表。

  • 问题内容: 我有一个数字列表,我想获取一个数字在满足特定条件的列表中出现的次数。我可以使用列表推导(或函数中的列表推导),但我想知道是否有人有更短的方法。 还有更精简的版本吗? 问题答案: 您可以执行以下操作: 它最初可能看起来很奇怪添加到这种方式,但我不认为这是unpythonic; 毕竟, 是一个子类的在2.3以来所有版本:

  • 我有一个数字列表,我想得到一个数字出现在符合特定标准的列表中的次数。我可以使用列表理解(或函数中的列表理解),但我想知道是否有人有更短的方法。 还有更精简的版本吗?

  • 本文向大家介绍如何在MongoDB中汇总总和以获得总数?,包括了如何在MongoDB中汇总总和以获得总数?的使用技巧和注意事项,需要的朋友参考一下 要在MongoDB中汇总总和以获取总计数,可以使用$sum运算符。要了解上述概念,让我们使用文档创建一个集合- 在method的帮助下显示集合中的所有文档。查询如下- 以下是输出- 这是获取总数的查询。 情况1-查询如下- 以下是输出- 这是在Mong

  • 问题内容: 遵循“只有一种明显的方法”,如何在Numpy中获得向量(一维数组)的大小? 上面的方法有效,但是我 不敢相信 自己必须指定这样一个琐碎的核心功能。 问题答案: 您需要的功能是。(我认为它应该作为数组的属性存在于基本numpy中-说-但很好)。 您还可以根据需要输入可选的n阶范数。假设您想要1范数: 等等。

  • 问题内容: 这是Sun教程中的基本打印程序示例: 当显示打印对话框时(第二行),用户可以选择仅打印文档中的页面范围。我能以某种方式获得要打印的页数吗?例如,如果我有一个25页的文档,但是用户选择打印4-10的范围,那么将只打印7页。是否有某种方式可以访问该信息? 我需要它来显示进度条,该进度条随着每打印一页的增加而增加,但是为此,我需要知道将要打印的总页数。 那我怎么得到那个数字呢? 问题答案: