我想检索表中满足某些条件的最多一列。我尝试了以下 SQL
Select Name, Max(version) from table1 where name="Asdf";
我得到的结果集的名称比我在 where 子句中给出的名称要多。您认为上述查询有什么问题?
先感谢您
注意:它的 Sybase 数据库
您不能混合使用聚合函数和普通列选择。尝试
select max(version)
from table1
where Name = 'Asdf'
或使用 agroup by
获取所有名称及其max(version)
:
select Name, Max(version)
from table1
group by Name
group by
处理聚合函数时需要使用子句:
Select Name, Max(version) from table1 where name="Asdf" Group by Name
这是因为您没有在选择中包含名称字段。如果你想得到那个然后尝试......
Select top 1 name, version
from table1
where name = 'Asdf'
order by version desc
这应该会给您返回您正在寻找的数据集。它应该只为您提供名称“Asdf”的最大版本。如果这不是您想要的数据集,请提供示例数据集。
SQL查询:
Select Name, version
from table1
where name="Asdf"
having max(version) = version
如果数据库中有不止一行具有相同的名称和最大版本,并且您只希望在数据集中返回一行。对
SQL查询:
Select top 1 Name, version
from table1
where name="Asdf"
having max(version) = version
或者如果你想做一组名称:
Select distinct Name, version
from table1
where name in ("Asdf", "ghjk")
having max(version) = version