如表T内容如下:
month sale
1 10
1 20
1 30
1 40
2 10
2 20
2 30
2 40
要求:查询出每个月前三条的销售记录
select * from T as a where sale in (select top 3 sale from T where month=a.month);
执行后结果如下:
month sale
1 10
1 20
1 30
2 10
2 20
2 30
但一直没有想清除是怎么样的原理,不知有没有人能看到指点指点。