今天朋友去一个公司笔试,考了一道数据库的题,回来的时候和大家说了一下,觉得很怪异,是一个数据表,查询里面其中一个数据的第二大值,
数据表flights内容如下
ID | FLIGHT_NO | START_PLACE | END_PLACE | TIME | PRICE |
2 | 006 | 88 | 88 | 6 | 1245 |
6 | 3444 | 上海 | 上海 | 4 | 245 |
7 | 007 | 美国 | 美国 | 45 | 2340 |
8 | 008 | 英国 | 英国 | 0 | 0 |
获得里面第二个大值:
select max(price) from flights where price < (select max(price) from flights)
解决思路:先查找最大的,接着去除最大的,在找最大的。
这样确实是可以解决问题,但是如果是查询第三大值呢,如果数据量超级无比大呢,还需要研究下……