SQL排序计算

来源:百度知道 编辑:UC知道 时间:2024/06/18 11:08:42
有数据表kk,共有两个数列

a b
1 2
1 3
1 4
2 5
2 1
3 7
3 1
3 3
4 8
8 1
8 2
9 7
. .
. .

要求得到数列a中最小的三个不同的数对应的数列b中最小的数
上述数据应该得到以下数据集
a b
1 2
2 1
3 1

本人用过常规的排序语句都没办法获得,请高手指导SQL语句应该如何写,急,谢谢,我把全部积分都贡献了。

没有数据库 所以 SQL语句没有试

随便写一下:
Oracle:

select * from (Select a,min(b) from kk group by a order by a ) where rownum<4;

declare @temp table
(
a int,
b int,
c int
)
declare @min table
(
a int,
c int
)
insert @temp
select kk.a,kk.b,kk.a+kk.b from
(
select top 3 b.a from
(select
a
from kk
group by a)b
order by b.a
)c,kk
where kk.a=c.a

insert @min
select
a,min(c) as 'c'
from @temp
group by a

select tba.a,tba.b from @temp tba,@min tbb
where tba.a=tbb.a and tba.c=tbb.c

select top 3 C.* from (select a, min(b) from tablename group by a ) C order by a

select top 3 [a].[b]
from [表]
group by [a] order by [a]

select a,min(b) as b from kk group by a order by a