请问T-SQL中Group By之后怎么找到特定的record# Database - 数据库
b*r
1 楼
不好意思,题目描述的有点晕
有如下的table A,希望得到每种Title中Age最大的人的Name
Name Age Title
xxx 35 Engineer
yyy 25 Engineer
zzz 40 Manager
我是数据库新手,能想到的办法比较笨:
select Name from A inner join
(select DISTINCT Title, MAX(Age) AS Age from A GROUP BY Title) AS B
on A.Age=B.Age and A.Title=B.Title
问题是
(1)如果有两个Name不同,但Age,Title相同的人
INNER JOIN 能否同时得到这两个Name?
(2)如果我还有where clause来限制这个表(还有其他field)
应该如何优化?放进中间的Select里面还是放在最后?
(3)是否有更好的办法完成这个query?
谢谢!
有如下的table A,希望得到每种Title中Age最大的人的Name
Name Age Title
xxx 35 Engineer
yyy 25 Engineer
zzz 40 Manager
我是数据库新手,能想到的办法比较笨:
select Name from A inner join
(select DISTINCT Title, MAX(Age) AS Age from A GROUP BY Title) AS B
on A.Age=B.Age and A.Title=B.Title
问题是
(1)如果有两个Name不同,但Age,Title相同的人
INNER JOIN 能否同时得到这两个Name?
(2)如果我还有where clause来限制这个表(还有其他field)
应该如何优化?放进中间的Select里面还是放在最后?
(3)是否有更好的办法完成这个query?
谢谢!