cyb*_*ork 3 sql t-sql sql-server select
我正在寻找一个返回列表的t-sql脚本,它显示来自Table1的分组中的每一秒值.
例如,我有以下数据(表1),并希望得到所需的结果列表:
Table1:
Customer Quantity
A 5
A 8 (*)
B 3
B 5 (*)
B 11
C 7
D 4
D 23 (*)
Run Code Online (Sandbox Code Playgroud)
期望的retult-list:
Customer Quantity
A 8
B 5
D 23
Run Code Online (Sandbox Code Playgroud)
我想用'select distinct和left outer join'做一些事情,但我无法让它工作.可能我需要行编号,但无法弄清楚如何操作.有人可以帮帮我吗?
Beneath是我用来制作和填充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);
Run Code Online (Sandbox Code Playgroud)
使用row_number窗口函数可以非常轻松地完成此操作:
SELECT customer, quantity
FROM (SELECT customer, quantity,
ROW_NUMBER() OVER (PARTITION BY customer
ORDER BY quantity ASC) AS rn
FROM table1) t
WHERE rn = 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1292 次 |
| 最近记录: |