从列中选择记录

时间:2016-02-16 13:53:57

标签: mysql sql numbers

我必须按列中的数字选择 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和脚本构建:(

2 个答案:

答案 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 |
---------