日期:2014-05-18  浏览次数:20571 次

SQL该怎么写,请高手们指点下!
数据表中的数据有10亿左右,先做如下查询,查出价格最高的记录。
表结构等如下:
表名:AAA
数据:ID Name Num
  1 P1 400
  2 P2 400
  3 P3 300
  4 P4 200
  5 P5 400
  6 P6 300
  ...

结果:ID Name Num
  1 P1 400
  2 P2 400
  5 P5 400
  ...

SQL code

/* 我自己也研究了下,下面的语句可以实现功能,但性能不佳 */
SELECT Name, Num FROM AAA WHERE Num = (SELECT MAX(Num) FROM AAA)

/* 求不用子查询的方法 */



------解决方案--------------------
貌似你这个已经是最简单的了.

或者分两步走.

declare @num as int
set @num = (SELECT MAX(Num) FROM AAA)
select * from aaa where num = @num

------解决方案--------------------
探讨
貌似你这个已经是最简单的了.

或者分两步走.

declare @num as int
set @num = (SELECT MAX(Num) FROM AAA)
select * from aaa where num = @num

------解决方案--------------------
这样效率上不会有问题的
------解决方案--------------------
lz想多了
------解决方案--------------------
with temp as(
 SELECT MAX(Num) as max_num FROM AAA
)
select AAA.* from AAA, temp where AAA.num = temp.max_num