多行选择一个行我对这个问题1个相关的表,奖励:基于一个场
----------------------------------------
| award |
----------------------------------------
| id | name | URL | country_id | point |
----------------------------------------
1 | A | a | 1 | 120
2 | A | b | 0 | 60
3 | A | b | 2 | 80
4 | B | c | 0 | 50
5 | B | d | 1 | 70
我希望能够获得特定国家,相应的各类奖项的名单(同一奖项具有相同的名称),其列为point
列的最高值。
因此,我尝试通过点DESC命令我的请求,并按名称分组,但它没有做到这一点,我没有得到正确的点数和正确的URL。
我知道我可以通过从表中获取所有数据然后只保留具有最佳点数的行,但必须有一种方法可以仅使用SQL来完成此操作!
我尝试的要求是:
SELECT name, URL, point FROM award WHERE country_id IN (0,1) ORDER BY point DESC GROUP BY name
它为我工作,但也有可能是,如果有使用相同的名称和相同数量的点不同的行了一个问题:URL可能是错误的(不是从良行)。 – hellimac
你想在这种情况下返回哪一行(即哪一行是“好行”)?如果您将country_id包含在group中并加入,那么您将获得每个国家/地区的最大分数。不知道这是你在找什么。 – markwatsonatx