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

在t-sql中获取第二行作为结果表

空鸿云
2023-03-14
问题内容

我正在寻找一个返回列表的t-sql脚本,该列表显示来自Table1分组的每个第二个值。

例如,我有以下数据(表1),并想要所需的结果列表:

Table1:
Customer    Quantity
A           5
A           8               (*)
B           3
B           5                (*)
B           11
C           7
D           4
D           23               (*)

所需的摘要列表:

Customer    Quantity
A           8
B           5
D           23

我考虑使用“选择不同的和左外部联接”来做某事,但是我无法使其正常工作。可能我需要一个行编号,但无法弄清楚该怎么做。有人可以帮助我吗?

下面是我用来制作和填充Table1的脚本:

CREATE TABLE Table1
(Customer nvarchar(1) NULL,
Quantity int NOT NULL);

INSERT INTO Table1(Customer,Quantity)
VALUES 
('A',5),
('A',8),
('B',3),
('B',5),
('B',11),
('C',7),
('D',4),
('D',23);

问题答案:

您可以使用ROW_NUMBERCTE

WITH data AS (
    SELECT  *, ROW_NUMBER() OVER  (PARTITION BY Customer ORDER BY Quantity) rn
    FROM    @Table1 
)
SELECT Customer, Quantity
FROM    data 
WHERE   rn = 2

怎么运行的:

使用ROW_NUMBER()会根据中指定的内容为每行分配一个顺序号OVER ()。在“OVER我要指定到PARTITION客户的行”中,这意味着将对同一客户的每组数据分别进行编号。然后ORDER BY Quantity意味着它应该基于每个客户的数量订购数据-这样我就可以按数量订购每个客户的第二行。



 类似资料:
  • 问题内容: 我正在编写一个SQL查询以获取Report Builder 3.0中报表的参数列表。我需要在结果中添加一个额外的行,其值为“ All”,如下所示: 效果很好,但是查询返回的行以字母顺序排序,实际上我一直希望“全部”始终出现在顶部(即返回第一行)。其余结果可以按字母顺序排序。 我已经看到有关向表中添加排序顺序列的建议,但是我对SQL还是很陌生,并且不知道如何执行此操作。 感谢您的任何建议

  • 我正在尝试更改角7的密码功能, 从后端端,如果当前密码不正确,它将返回true。 在角度侧,将显示错误消息。 但问题是我必须点击两次显示错误信息,甚至我可以看到日志打印真实值的响应,但不确定为什么*ngif不工作 模板侧 我的组件方面 服务方 有人能解释一下为什么我必须点击提交按钮两次才能显示html元素吗 谢谢

  • 问题内容: 我有下表 我需要编写一个查询,该查询将返回不同的ID和对应的Number列值相乘。对于给定的表结果应该是这样的 (不使用游标) 问题答案: 这将适用于正数,也可以乘以负数,也可以使用ABS()函数使用绝对(正)值,但最终结果将是正数,而不是负数: 编辑:添加了测试脚本 输出:

  • 问题内容: 我想执行匿名PL / SQL,并需要获取结果集对象。我得到了可以通过使用PL / SQL块内的游标完成的代码。 但是PL / SQL块本身将以文本形式来自数据库。因此,我无法编辑该PL / SQL块。并且它将仅返回两个其列名始终相同的值。它将返回2个列组合值的列表。 在这里,我给出示例PL / SQL。 任何回复都将非常有帮助。 问题答案: 这是一个如何“执行匿名PL / SQL并获取

  • 问题内容: 看着它只是说的javadocs 提交要执行的Runnable任务,并返回代表该任务的Future。Future的get方法将在成功完成后返回给定的结果。 参数: 任务-提交的任务 结果-要返回的结果 但是结果如何呢?它在那里存储什么吗?它是否仅使用结果的类型来指定类型? 问题答案: 它对结果没有任何作用-保留它。任务成功完成后,调用将返回您传递的结果。 这是Executors $ Ru

  • 问题内容: 我正在尝试使用ES作为MongoDB的索引。我已经成功地将它们集成在一起,但是我发现搜索API相当复杂且令人困惑。Java API也不太有用。 我可以找到完全匹配的内容,但是如何获得此结果?这是我的代码: 问题答案: 我不确定我是否理解您的问题。 如果要根据示例打印searchResponse的结果,则应为以下内容: 我正在使用Gson将Json响应转换为FireWall(POJO)。