Как мне в sql вывести самые популярные браузеры в регионах?
Есть такая таблица:
region browser
"Adygea" "Chrome"
"Adygea" "Firefox"
"Adygea" "Firefox"
"Adygea" "Firefox"
"Adygea" "Firefox"
"Adygea" "Firefox"
"Adygea" "Firefox"
"Adygea" "Firefox"
"Adygea" "Firefox"
"Adygea" "Firefox"
"Adygea" "Firefox"
"Adygea" "Opera"
"Adygea" "Opera"
"Adygea" "Safari"
"Adygea" "Safari"
"Adygea" "Safari"
"Adygea" "Safari"
"Altai" "Chrome"
"Altai" "Chrome"
"Altai" "Chrome"
"Altai" "Chrome"
"Altai" "Firefox"
"Altai" "Firefox"
"Altai" "Firefox"
"Altai" "Firefox"
"Altai" "Firefox"
"Altai" "Opera"
"Altai" "Opera"
"Altai" "Safari"
Как мне в этой таблице вывести самые популярные браузеры в регионах?
Ответы (1 шт):
Автор решения: Dmitry Ivanov
→ Ссылка
Чтобы получить список самых популярных браузеров необходимо ответить на два вопроса, нужен список уникальных регионов и рейтинг браузеров в этих регионах, для этого необходимо два предварительных подзапроса, которые можно выполнить в CTE или в виде связанных подзапросов с LATERAL LIMIT последний вариант мне кажется более интересным:
SELECT rat.region, rat.browser, rat.rating FROM
(SELECT DISTINCT region FROM tbrowser) reg
JOIN
LATERAL(SELECT region, browser, COUNT(*) rating FROM tbrowser
GROUP BY region, browser
HAVING region = reg.region ORDER BY region, rating DESC LIMIT 1) rat
ON reg.region = rat.region;