Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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 基于另一列选择非重复非重复列_Mysql_Sql - Fatal编程技术网

Mysql 基于另一列选择非重复非重复列

Mysql 基于另一列选择非重复非重复列,mysql,sql,Mysql,Sql,所以我有这张表,我想得到最新的分析结果 那么,在没有重复的repo\u id的情况下,如何从analysis\u id获取最大的数字呢 您正在寻找分组方式 一个通用的MySQL 8+友好解决方案使用行号: 以cte为例 选择*,按存储id排序按分析id描述的分区上的行数 从你的桌子上 选择id、回购id、分析id 来自cte 其中rn=1; 在MySQL 5+中,您可以使用 SELECT * FROM tablename t1 WHERE NOT EXISTS ( SELECT NULL

所以我有这张表,我想得到最新的分析结果

那么,在没有重复的repo\u id的情况下,如何从analysis\u id获取最大的数字呢

您正在寻找分组方式


一个通用的MySQL 8+友好解决方案使用行号:

以cte为例 选择*,按存储id排序按分析id描述的分区上的行数 从你的桌子上 选择id、回购id、分析id 来自cte 其中rn=1;
在MySQL 5+中,您可以使用

SELECT *
FROM tablename t1
WHERE NOT EXISTS ( SELECT NULL
                   FROM tablename t2
                   WHERE t1.repo_id = t2.repo_id
                     AND t1.id < t2.id )
+----+---------+-------------+
| id | repo_id | analysis_id |
+----+---------+-------------+
| 3  |   20    |      5      |
+----+---------+-------------+
| 4  |   21    |      6      |
+----+---------+-------------+
| 5  |   22    |      7      |
+----+---------+-------------+
SELECT MAX(id) ,repo_id ,MAX(analysis_id)
FROM YOUR_TABLE
GROUP BY repo_id 
SELECT *
FROM tablename t1
WHERE NOT EXISTS ( SELECT NULL
                   FROM tablename t2
                   WHERE t1.repo_id = t2.repo_id
                     AND t1.id < t2.id )