Consulta para contagem atual de votos

Olá, sou um novato completo em SQL.

Quero obter uma lista de “quantos usuários” lançaram “quantos votos”. Em nossa instância, temos um limite de 10 votos por pessoa. A tabela resultante ficaria assim:

Número de votos Número de usuários
10 25
9 32
8 43
(etc)

No que é meu primeiro SQL, cheguei até aqui:

SELECT user_id, count(user_id)
FROM discourse_voting_votes
GROUP BY user_id
ORDER BY count DESC

Isso resulta em uma lista de usuários classificados pelo número de votos lançados. Pelo menos com isso posso calcular manualmente o resultado desejado, mas é tedioso e propenso a erros.

2 curtidas

Receio que esta também seja a minha primeira consulta SQL, então veremos como isto corre… :slightly_smiling_face: mas isto ajuda de alguma forma?

WITH votes AS (
    SELECT user_id, count(user_id) as Number_of_Votes
    FROM discourse_voting_votes dvv
    WHERE dvv.archive = false
    GROUP BY user_id
    ORDER BY Number_of_Votes DESC
)
SELECT Number_of_Votes, count(*) AS Number_of_Users
FROM votes
GROUP BY Number_of_Votes
ORDER BY Number_of_Votes DESC
3 curtidas

PERFEITO! Muito obrigado! Pelo script e pela pequena aula de SQL. Espero que isso tenha sido útil para você também.

Aposto que esta consulta será útil para outras pessoas. No nosso caso, queremos mostrar essa distribuição de votos para que nossos voluntários possam ter mais autoconsciência sobre o quanto / o pouco que estão usando seus votos em comparação com outros colegas. O objetivo final é aumentar o número de votos utilizados.

3 curtidas

Fico muito feliz que tenha funcionado. :+1: Eu queria praticar com o explorador de dados há algum tempo e esta pareceu uma oportunidade perfeita, então, na verdade, eu deveria estar agradecendo a você. :slightly_smiling_face:

Adicionei a linha ‘archive = false’ para restringir os resultados ao total de votos atuais do usuário, e não incluir os históricos. Acho que isso está certo para o seu caso de uso, mas remova-a se quiser um ‘total geral’.

Obrigado novamente. :+1::slightly_smiling_face:

2 curtidas

Ah, eu não fazia ideia do que era isso. Sim, isso se encaixa na consulta que eu estava procurando. Obrigado novamente, já estamos usando esses dados.

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.