У меня есть вопрос для всех экспертов SQL.SQL-запрос и подзапросы
Существует таблица выглядит как:
clanname country points
name1 country1 100
name2 country1 90
name3 country1 10
name4 country2 100
name5 country2 80
name6 country2 70
Я хотел бы сделать страну рейтинге участвуют только те TOP2 результаты каждой страны. так, в этом примере, рейтинг должен быть:
country average-points
country2 95
country1 90
Если есть способ, чтобы получить этот результат с только один SQL запрос с использованием подзапросов?
В действительности у меня есть более 200 стран .. и тысячи результатов для каждой страны. Но я бы хотел отфильтровать только 30 лучших результатов каждой страны.
Сейчас мне удалось получить среднее одной страны, используя этот запрос:
SELECT
location, AVG(warswon)
FROM
(SELECT
`name`, `location`, `warswon`
FROM
`clans`
WHERE
location = 'China'
ORDER BY
`clans`.`warswon` DESC
LIMIT 30) AS top30ofcountry
, но как я могу получить средние результаты каждой страны в одном запросе?
Возможно ли это?
GROUP BY [имя_поль] –
добавить в конце 'GROUP BY location' – Mihai
Зачем вам нужен подзапрос для этого? –