Mysql 在where子句中使用max

Mysql 在where子句中使用max,mysql,sql,Mysql,Sql,对于需要基于特定字段的最大值显示整个元组的特定查询,我需要使用max at where子句,如何使用它?现在,我通过限制1实现了同样的目标 select * from (select count(some_field) as field1 ..........order by field1 desc) as kil limit 1 试试这个: select * from some_table where field1 = (select max(field1) from some_t

对于需要基于特定字段的最大值显示整个元组的特定查询,我需要使用max at where子句,如何使用它?现在,我通过限制1实现了同样的目标

select * from  
  (select count(some_field) as field1 ..........order by field1 desc) as kil 
limit 1
试试这个:

select * from some_table
where field1 = (select max(field1) from some_table)

请注意,原始查询将返回一行,但如果有多行共享相同的最大值,则此查询可能返回多行。要复制相同的行为,您仍然需要在查询的末尾添加
limit 1

我不太熟悉mysql,但在SQL server中,您可以这样做

SELECT 
  * from 
table A
where col1=(select max(col1) from table B where A.id=B.id)

为了计数,你可以做

SELECT 
    col1
    , col2  from 
    table A
group by 
col1
, col2
Having count(*)>1

您的查询的主要问题是什么?演出结果不正确?有没有其他更好的方法来达到同样的效果,我的意思是提高性能@JoachimIsaksson相信你想要拥有。在你的内部查询中是否有
分组依据?您可能需要显示内部查询的更多详细信息,以便有机会对其进行优化。也许,您应该显示示例数据,以及要返回的行,并解释原因。内部查询需要使用类似
选择计数(某些字段)作为字段1
@Bohemian@AmrithKrishna为什么?你想干什么?还是希望另一列中每个值的最大行数?