一尘不染

如何选择两列,其中一列必须是DISTINCT?

sql

Table1有3列:col1col2col3

如何将where的SELECT所有DISTINCT值都等于某个值,然后按进行排序,但不同的结果显示其对应的值呢?col1``col3``col2 DESC``col1``col2

我尝试了以下操作,但没有成功:

SELECT DISTINCT (col1), col2
FROM  `Table1` 
WHERE  `col3` =  'X'
ORDER BY  `col2` DESC

上述结果不会导致的不同值col1。如果我删除“ , col2”,则它将显示的不同值col1,但不会显示其相应的col2值。

那我该怎么办呢?


阅读 137

收藏
2021-05-23

共1个答案

一尘不染

也许是这样的:

SELECT col1, MAX(col2) col2_max
FROM Table1
WHERE col3 = 'X'
GROUP BY col1
ORDER BY col2_max

您可以在此SQL Fiddle中使用它。

2021-05-23