首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

关于求第n大值的有关问题

2012-09-28 
关于求第n大值的问题用test数据库中的test表(表中有两列a b),表如下:ab201.0224.02040.0203.0237.0313.033

关于求第n大值的问题
用test数据库中的test表(表中有两列a b),表如下:
a b
201.0
224.0
2040.0
203.0
237.0
313.0
330.0
214.0
222.0
求第3大值。
SET @num1=0;
SET @aa=0;
SELECT a.a,SUM(a.B),MAX(c.b) FROM test a LEFT JOIN
(
SELECT a,b FROM (
SELECT *,@num1:=IF(@aa=a,@num1+1,1) AS pm,@aa:=a AS pm1 FROM test ORDER BY a,b DESC) a WHERE pm=3) c
ON a.a=c.a
GROUP BY a.a;
Query OK, 0 rows affected

Query OK, 0 rows affected

+----+----------+----------+
| a | SUM(a.B) | MAX(c.b) |
+----+----------+----------+
| 2 | 97.0 | 22 |
| 3 | 43.0 | NULL |
| 20 | 44.0 | 1 |
+----+----------+----------+
3 rows in set
看不懂SELECT *,@num1:=IF(@aa=a,@num1+1,1) AS pm,@aa:=a AS pm1 FROM test ORDER BY a,b DESC) a WHERE pm=3,请帮忙解释。谢谢

[解决办法]

引用看不懂SELECT *,@num1:=IF(@aa=a,@num1+1,1) AS pm,@aa:=a AS pm1 FROM test ORDER BY a,b DESC) a WHERE pm=3,请帮忙解释。谢谢

热点排行