Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中使用MAX()过滤两次_Mysql_Sql_Sql Max - Fatal编程技术网

在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 . . . 非常感谢。