多行選擇一個行我對這個問題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