从列中选择记录
Selecting records from column
我必须 select 100 个最高记录 按列中的数字。
结构看起来像这样:
---------
| A | B |
---------
| 1 | 1 |
| 22| 2 |
| 31| 1 |
| 41| 2 |
---------
我需要为每个 nr B select A 列中的最高数字。在这个例子中它将是
---------
| A | B |
---------
| 31| 1 |
| 41| 2 |
---------
B1 = 31, 1; B2 = 41, 22.
任务看起来很简单,但我在 A 列中有超过 1000 万个数字,在 B 列中有大约 40 000 nr。
你能帮帮我吗?我不太擅长 sql 和脚本构建:(
我做的一个项目也有类似的问题。
您应该将标签 MySql 更正为 SQLSERVER.
我用这个SQL Fiddle做一个关于问题的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
| a | b |
|----|---|
| 31 | 1 |
| 41 | 2 |
| 11 | 3 |
据我了解,我想这可能有所帮助
Select Top 10 A , B from tableName group by B , A
这将为您提供以下内容
---------
| A | B |
---------
| 1 | 1 |
| 31| 1 |
| 22| 2 |
| 41| 2 |
---------
我必须 select 100 个最高记录 按列中的数字。 结构看起来像这样:
--------- | A | B | --------- | 1 | 1 | | 22| 2 | | 31| 1 | | 41| 2 | ---------
我需要为每个 nr B select A 列中的最高数字。在这个例子中它将是
--------- | A | B | --------- | 31| 1 | | 41| 2 | ---------
B1 = 31, 1; B2 = 41, 22.
任务看起来很简单,但我在 A 列中有超过 1000 万个数字,在 B 列中有大约 40 000 nr。
你能帮帮我吗?我不太擅长 sql 和脚本构建:(
我做的一个项目也有类似的问题。
您应该将标签 MySql 更正为 SQLSERVER.
我用这个SQL Fiddle做一个关于问题的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
| a | b | |----|---| | 31 | 1 | | 41 | 2 | | 11 | 3 |
据我了解,我想这可能有所帮助
Select Top 10 A , B from tableName group by B , A
这将为您提供以下内容
---------
| A | B |
---------
| 1 | 1 |
| 31| 1 |
| 22| 2 |
| 41| 2 |
---------