通过删除重复项来限制结果,但保留最高的重复项?
Limit results by removing duplicates, but keep the highest of the duplicates?
不太确定如何在标题中很好地解释它。
注意:我正在使用 PHP 和 PDO 来查询 sql 数据库。
我有一个 table,其中包含一个不唯一的数字列表,第二列的数字我只想要其中的最高值 - 并且仅当最高值高于 50 时,例如:
0 - 50
0 - 80
1 - 24
1 - 88
2 - 11
2 - 44
根据以上,我只想返回 0 - 80
和 1 - 88
,有什么好的实现方法吗?
我只能想到一个低效的方法,returns所有行,然后一个一个地比较,将值添加到数组中,如果循环中存在更高的值,则替换它们。
检查:
SELECT DISTINCT col1, MAX(col2) maximus
FROM my_table
GROUP BY col1
HAVING maximus > 50
不太确定如何在标题中很好地解释它。
注意:我正在使用 PHP 和 PDO 来查询 sql 数据库。
我有一个 table,其中包含一个不唯一的数字列表,第二列的数字我只想要其中的最高值 - 并且仅当最高值高于 50 时,例如:
0 - 50
0 - 80
1 - 24
1 - 88
2 - 11
2 - 44
根据以上,我只想返回 0 - 80
和 1 - 88
,有什么好的实现方法吗?
我只能想到一个低效的方法,returns所有行,然后一个一个地比较,将值添加到数组中,如果循环中存在更高的值,则替换它们。
检查:
SELECT DISTINCT col1, MAX(col2) maximus
FROM my_table
GROUP BY col1
HAVING maximus > 50