我必须按列中的数字选择 100条最高记录。 结构看起来像这样:
--------- | A | B | --------- | 1 | 1 | | 22| 2 | | 31| 1 | | 41| 2 | ---------
我需要为每个nr B选择A列中的最高数字。在这个例子中它将是
--------- | A | B | --------- | 31| 1 | | 41| 2 | ---------
B1 = 31,1; B2 = 41,22。
这项任务看起来很简单,但我在A栏中获得的数字超过10万,而在B栏中则超过了40 000 nr。
你能帮帮我吗?我并不擅长sql和脚本构建:(答案 0 :(得分:1)
我在一个项目中遇到了类似的问题。
您应该将 MySql 标记更正为 SQLSERVER 。
我使用这个SQL Fiddle来解决这个问题,我想这就是你想要的。
MS SQL Server 2014架构设置:
create table tab1 (
a int,
b int
);
insert into tab1 (a, b) values
(1,1),
(22,2),
(11,3),
(31,1),
(10,3),
(41,2);
查询1 :
SELECT TOP 100 Max(a) as a, b
FROM tab1
GROUP BY b
ORDER BY b asc
<强> Results 强>:
| a | b | |----|---| | 31 | 1 | | 41 | 2 | | 11 | 3 |
答案 1 :(得分:1)
据我了解,我想这可能会有所帮助
Select Top 10 A , B from tableName group by B , A
这将为您提供以下
---------
| A | B |
---------
| 1 | 1 |
| 31| 1 |
| 22| 2 |
| 41| 2 |
---------