最大()在SQL查询
我在我的表中有一些记录。最大()在SQL查询
我要选择具有最大年龄
如果我写了下面的查询它的做工精细的记录。
Select MAX(Age)
From Table
它工作正常。但如果我这样写,
Select FirstName, LastName, MAX(Age)
From Table
Group By FirstName, LastName
它不工作(显示所有记录)。我怎样才能解决这个问题 ?
您可以使用子查询获取最大值Age
,并比较外部查询的年龄结果。
Select *
From TableName
WHERE Age = (SELECT MAX(Age) FROM TableName)
简要说明,在查询中使用GROUP BY
不正是你想要的,因为它不是一个过滤运营商和只做组非集合列。例如,您有两个记录具有相同的名字和姓氏,但年龄不同,结果将是由于使用MAX()
而使用年龄最大的人。
不客气':)' – 2013-04-08 06:03:34
由于使用max(Age)您将获得单个记录和FirstName,因此LastName有多个记录。
您正在一起使用它,因此它会产生歧义。
Select FirstName, LastName from From Table where Age = (SELECT MAX(Age) FROM Table)
使用此查询。
哇。它非常简单。不要理解这个想法。谢谢你。 – 2013-04-08 06:00:57
@ R.Reddy随时欢迎。 – Freelancer 2013-04-08 06:01:54
另一种方法是使用not exists
:
Select * from Table t1
where not exists (select 1 from Table where age > t1.age)
我建议这个简单的方法:
select *
from table
order by age desc
fecth 1 rows only
请注意,这样做只能选择一个记录,而不是与最大年龄的所有记录。
您的数据库..? – 2013-04-08 05:59:38
*** SQL ***只是*结构化查询语言* - 许多数据库系统使用的语言,但不是数据库产品......很多东西都是特定于供应商的 - 所以我们真的需要知道什么**数据库系统**(和哪个版本),你正在使用.... – 2013-04-08 06:33:05
DB2 @ Sayed Ahmed – 2013-04-08 06:34:36