日期:2014-05-17  浏览次数:20829 次

急,一道sql题??
问个问题
  ID NAME SCOPE
1 AAA 1
2 AAA 8
3 AAA 6
4 bbb 2
5 bbb 1

如果这张表我只想把第2行和第4行取出来,怎么写SQL语句啊?

也就是取出相同名字的scope的最大值行
希望是取出整行来,而不是这样
select max(scope) from table t group by name;
最好是select * from...怎么样的
谢谢!

------解决方案--------------------
SQL code
select ID,NAME,SCOPE
FROM (NAME,SCOPE) IN (SELECT NAME,MAX(SCOPE) FROM TAB GROUP BY NAME )

------解决方案--------------------

select * from tab a
where not exists(select 1 from tab b where a.name=b.name and a.scope<b.scope)
------解决方案--------------------
SQL code
SELECT ID, NAME, SCOPE
  FROM TAB
 WHERE (NAME, SCOPE) IN  SELECT NAME, MAX(SCOPE) FROM TAB GROUP BY NAME

------解决方案--------------------
探讨
SQL code
SELECT ID, NAME, SCOPE
FROM TAB
WHERE (NAME, SCOPE) IN SELECT NAME, MAX(SCOPE) FROM TAB GROUP BY NAME