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

SQL:选择前3条记录+数量总和

郦祯
2023-03-14
问题内容

我想显示现有 Orders 表中的前3条记录。为此,我需要计算每种产品的数量之和。

现有记录:

OrderNo     ProductID     Quantity
1           1             50
1           2             30
1           3             20
2           2             30
3           1             100
3           4             50
4           1             20
4           5             10
5           2             10

预期产量

ProductID     Quantity
1             170
2             70
4             50

问题答案:

SUM然后,您需要ORDER BY以下摘要值:

SELECT TOP 3 ProductID, SUM(Quantity) as qSum
FROM Table
GROUP BY ProductID
ORDER BY qSum DESC


 类似资料:
  • 问题内容: 我有一个具有“约会表”和“服务表”的数据库。每个appt都有一个服务,每个服务都有一个价格。我想要的是一个查询,该查询将始终返回12行(每月一行),并包含几个月的总和(基于其服务ID)。到目前为止,我有: 当前,返回的内容如下: 问题是,如果一个月没有任何订单,我不会在查询中返回该月。我希望该月有一个记录,只是它的“ monthly_total”等于零。 以下是我希望查询返回的内容:

  • 问题内容: 我试图从看起来像这样的数据库表结果中选择前2条记录 我试过这个查询 但是有些主题,例如失踪的地方,我什至尝试了以下链接的建议 如何选择每个组的前N行? 但是我为每个受检者得到两个以上 我究竟做错了什么? 问题答案: 您可以使用相关的子查询: 该查询通过串联三列来构造单列主键。如果您有真正的主键(如),则可以用代替。 SQL Fiddle中的示例。

  • 我有一张桌子,大约有500万张记录。我想从这个表中读取所有的记录,并对它们进行一些处理。现在我想批量查询这些记录,比如一次1000条,处理它们并获取下一个1000条记录,等等。

  • 问题内容: 如何在SQL(PostgreSQL)查询中选择20个随机行? 问题答案: SELECT column FROM table ORDER BY RANDOM() LIMIT 20

  • 问题内容: 说我有一张桌子: 从给定日期开始递减时,我将如何选择找到的第一个日期。 示例:按日期查找4/1/12之前的最后一个条目。返回条目的SQL ID 2。 如果已添加: 比上面的示例将返回SQL ID 5处的条目。 我将如何表达我在SQL中的需求? 问题答案:

  • 问题内容: 我有下表: 我想从一个特定的组中选择前20个不同的名称,该组按该组中最常见的名称排序。对于第1组,此示例的结果将返回(a-3次出现,b-2次出现和c-1次出现)。 谢谢你。 问题答案: