Estou começando com o PostgreSQL e aposto que há uma resposta simples para o meu qs.
Eu tenho uma visão como:
county - candidate - votes
Abbeville - John Kasich - 157
Abbeville - Ben Carson - 305
Abbeville - Ted Cruz - 876
Abbeville - Jeb Bush - 236
Abbeville - Hillary Clinton - 1501
Abbeville - Marco Rubio - 740
Abbeville - Bernie Sanders - 312
Abbeville - Donald Trump - 1353
Abbot - Hillary Clinton - 0
Abbot - Bernie Sanders - 1
Abington - Ben Carson - 53
Abington - John Kasich - 299
Abington - Bernie Sanders - 1352
E eu gostaria de escrever uma consulta que retorna quem tem mais votos por município como:
county - candidate - votes
Abbeville - Hillary Clinton - 1501
Abbot - Bernie Sanders - 1
Abington - Bernie Sanders - 1352
Eu tentei esta consulta, mas não consigo retornar o candidato certo:
select
distinct on (county) county , candidate ,max(votes) over(partition by county)
from primary_results_csv prc
group by county, candidate, votes
order by county
Obrigado antecipadamente pela ajuda.
Você estava perto, mas não precisa da função
group by
ou damax(votes)
janela ao usardistinct on ()
A solução equivalente usando funções de janela seria:
Exemplo on-line