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

问下前辈门,SQL里聚合函数的使用问题.
有表A 里面有字段 id,filename,filepath,votes四个字段
  我想选取在表A里votes最高的记录,怎么选取?
  SELECT MAX(VOTES) FROM A GROUP BY id是可行的,但是我同时想读取filename,filepath的内容,怎么取?
  试了下SELECT MAX(VOTES),filename,filepath FROM A GROUP BY id就提示错误.filename,filepath必须包含在聚合函数,也不在GROUP BY子句中...如果把语句改成:
  SELECT MAX(VOTES),filename,filepath FROM A GROUP BY id,filename,filepath虽然不报错,又不是我想要的结果..我只想按id来分组

------解决方案--------------------
SQL code
SELECT id,filename,filepath,votes from A t where votes = (select max(votes) from A id = t.id )

------解决方案--------------------
select ID,FileName,FilePath,Votes From A where Votes=(select Max(Votes) from A)