在MySQL中使用MAX()过滤两次
在在MySQL中使用MAX()过滤两次,mysql,sql,sql-max,Mysql,Sql,Sql Max,在MySQL 5.7数据库中,我有一个名为my_values的下表: 价值1 价值2 价值3 福 7. 有些事 福 5. 有些事 福 12 随便什么 酒吧 3. 什么 酒吧 18 随便什么 酒吧 0 随便什么 巴兹 99 随便什么 巴兹 100 什么 以下是您如何做到这一点: select t1.* from my_values t1 natural join (select value1, MAX(value2) value2 from my_values
MySQL 5.7
数据库中,我有一个名为my_values
的下表:
价值1
价值2
价值3
福
7.
有些事
福
5.
有些事
福
12
随便什么
酒吧
3.
什么
酒吧
18
随便什么
酒吧
0
随便什么
巴兹
99
随便什么
巴兹
100
什么
以下是您如何做到这一点:
select t1.*
from my_values t1
natural join (select value1, MAX(value2) value2
from my_values
group by value1 ) t2
natural join (select value3, MAX(value2) value2
from my_values
group by value3) t3
您可以使用元组进行比较:
select t.*
from my_values t
where (t.value2, t.value3) = (select t2.value2, t2.value3
from my_values t2
where t2.value1 = t.value1
order by t2.value2 desc, t2.value3 desc
limit 1
);
my_values
在您的查询中丢失。子查询将返回多条记录,这真的有效吗?我想你需要限制1@eshirvana . . . 非常感谢。