MYSQL:获得最高$ col2的DISTINCT $ col1

时间:2014-03-03 18:07:07

标签: php mysql

我的桌子像这样:

name    | var
----------------
Joe     | 3
Liz     | 1
Liz     | 4
Joe     | 2
Peter   | 3
Joe     | 7
Liz     | 2

我正在寻找一个MYSQL查询,该查询将为我提供列name的DISCTINCT名称,其中varname相关Joe | 7 Liz | 4 Peter | 3 。 所以,对于上面的例子,我正在寻找

SELECT name, var 
FROM table
GROUP BY name
ORDER BY var DESC

我的尝试是:

SELECT DISTINCT name, var

我也试过了,

SELECT DISTINCT(name), var

{{1}}

但是我得到了名字的不同组合var

3 个答案:

答案 0 :(得分:2)

你需要使用聚合函数MAX()来获得你想要的GROUP BY

SELECT name, MAX(var) as var
FROM table
GROUP BY name
ORDER BY name ASC

...在这种情况下ORDER BY子句是可选的。

答案 1 :(得分:2)

试试这个

select name, max(var) as maxvar from Table1
group by name
ORDER BY maxvar DESC

DEMO HERE

答案 2 :(得分:1)

SELECT NAME, MAX(VAR) as var FROM XYZ GROUP BY NAME

---示例: 你有SELECT NAME, VAR FROM XYZ

Name  |  var
Mustafa  6
Tim      4
Tim      7
Joey     3
Tim      5
Joey     8
Mustafa  12

现在使用分组功能后,您将获得以下内容,这是GROUP BY功能的结果。它不关心其他列及其值。所以你可能在这里有一些随机数。

SELECT NAME, VAR FROM XYZ GROUP BY NAME

Name  |  var
Tim      5
Joey     3
Mustafa  12     <-- only this record ok?!

----现在我们使用MAX()作为“var”字段。所以它总是在我们的组中搜索MAX()值的所有记录。如果您愿意,可以为MAX()值添加Order语句。 (ORDER BY MAX(VAR)

SELECT NAME, MAX(VAR) as var FROM XYZ GROUP BY NAME

Name  |  var
Tim      7
Joey     8
Mustafa  12