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

SQL查询,用于查找表中的代表性行

邢骏
2023-03-14
问题内容

假设我有一个付款表,如下所示:

PaymentID INT,CustomerID INT,Value INT,PaidOn DATE

我想查询每个客户的最高付款额。是否可以使用单个SQL查询来避免不必要地挖掘我不感兴趣的每一行-或更糟糕的是,为每个客户运行一个查询?

到目前为止,我能想到的最好的方法是:

从Payments GROUP BY CustomerID中选择CustomerID,MAX(Value);

但这并没有为我找到的行提供PaymentId或PaidOn值。


问题答案:

以下查询将完成此操作。它会拉出所有没有更大值的行。

SELECT *
FROM payments p
WHERE NOT EXISTS (
    SELECT *
    FROM payments p2
    WHERE p2.CustomerID = p.CustomerId
    AND   p2.Value > p.Value
)


 类似资料:
  • 我刚开始在DynamoDB上建一个社交网站。 我将有相当数量的数据与一个用户相关,我计划将这些全部放入一个表中--例如: 用户ID 出生日期 头发 照片URL 详细信息 可能有几百个属性。 问题: 将这么多数据放入一个表中有什么问题吗? 我如何查询该数据(我是否可以执行类似这样的查询:“所有在这个年龄,这个颜色头发,这个位置,并且这次登录的成员)-假设所有这些数据都包含在表中? 如果一个表的内容很

  • 我在数据库中有两个带有绑定主键的表,我希望在它们之间找到一个不相交的集。例如 有列()和示例数据: 那么,我如何创建一个SQL查询,以便我可以从中获取没有在中的带有ID的行。在这种情况下,应该返回吗? PS:ID是这两个表的主键。

  • 我有两个MySql表用户和标记 用户表: 标记表 我想按降序获取得分最高的前10名用户的详细信息(userid、firstName和lastName)。用户分数定义为用户在不同科目的所有分数之和。 我真的很困惑在这里使用哪个连接,我是MySql新手,这个查询对我来说有点挑战性,希望你理解这个问题。如果你有任何建议,请告诉我,谢谢

  • 问题内容: 我需要查询以在Bigquery中查找表(表元数据)的列名,例如SQL中的以下查询: 问题答案: 更新 :现在可以!请参阅下面的文档和答案。 回答,大约在2012年: 尽管这不是第一次请求,但当前无法通过查询检索表元数据(即列名和类型)。 您有理由将其作为查询吗?表格元数据可通过表格API获得。

  • 问题内容: 我想使用原始sql来计算帐户余额,而无需额外的应用程序逻辑。交易模式包括金额,from_account_id和to_account_id 我的查询是 而且它没有按我预期的那样工作-结果是错误的,但是如果我仅在事务正常运行后才加入交易,例如只需借记金额就可以 我在余额查询中错过了什么? http://sqlfiddle.com/#!15/b5565/1 问题答案: 基本上,您正在计算a和

  • 问题内容: 我希望有人曾经尝试过这种方法,在我进一步尝试之前可以得到一些建议。 我希望产生类似于sql-server 2000中的交叉表查询的内容。 我有一个类似于以下内容的表结构: 我想做的是通过查询/存储过程来整理数据,以使构建报告更容易。 理想的解决方案将产生如下结果: 问题答案: 我最终使用存储过程(http://www.sqlteam.com/article/dynamic-cross-