|
楼主

楼主 |
发表于 2011-3-5 07:43:33
|
只看该作者
PROC sql 先分组,再取每组中前两条最小的纪录 , 但标示字段不能有重复.
先分组,再取每组中前两条最小的纪录
表结构如下:
a b c
s1 d3 0
s1 d1 2
s1 d2 3
s2 d3 0
s2 d1 1
s2 d4 2
s3 d3 1
s3 d1 1
s3 d2 2
s3 d4 0.5
先按照字段a分组,再取每组中c字段的前两条最小的纪录,也就是说,
对s1组,我取0,2行纪录。对s2组,应该取0,1行纪录,但是因为字段b的d3已经在s1组中出现过,
我只能取d1,d4作为我的前两条纪录。
依次类推, ....
用了下面的SQL ,
Select *
From test A
Where (Select Count(*)
From test
Where a = A.a And c< A.c) < 2
Order By a, c
显示结果如下:
a b c
s1 d3 0
s1 d1 2
s2 d3 0
s2 d1 1
s3 d4 0.5
s3 d1 1
s3 d3 1
但是为什么s3组会出现3条纪录, 而且在我的s2组中字段b的纪录集d3又再次出现了;(
请高手帮忙,多谢 |
|