-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquery_select.sql
More file actions
102 lines (84 loc) · 4 KB
/
query_select.sql
File metadata and controls
102 lines (84 loc) · 4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
-- AVG MIN MAX SUM ROUND
SELECT MAX(valor_receita) AS max_valor_receita,
MIN(valor_receita) AS min_valor_receita,
AVG(valor_receita) AS avr_valor_receita,
SUM(valor_receita) AS sun_valor_receita
FROM `basedosdados.br_tse_eleicoes.receitas_candidato`
WHERE ano = 2018 AND sigla_uf = 'BA';
-- Pesquisa auxiliar para encontrar um atributo chave para a pesquisa principal
SELECT DISTINCT cpf_candidato, nome_candidato FROM `basedosdados.br_tse_eleicoes.receitas_candidato` WHERE sigla_uf = "BA" AND ano = 2018 AND cargo = "governador";
SELECT COUNT(DISTINCT cpf_cnpj_doador) AS qtd_doadores
FROM `basedosdados.br_tse_eleicoes.receitas_candidato`
WHERE cpf_candidato = '23790997587' AND ano = 2018 AND sigla_uf = 'BA';
-- Encontrando o valor médio arredondado em 3 casas decimais.
SELECT ROUND(AVG(valor_receita), 3) AS valor_receita_media
FROM `basedosdados.br_tse_eleicoes.receitas_candidato`
WHERE ano = 2018 AND sigla_uf = 'AC' AND cargo= 'governador';
-- DESAFIO
--Tabelas de depesas.
--Quantos fornecedores do governador Rui Costa em 2018.
--Qual o valor total de despesas, valor máximo e mínimo.
--renomear os campos.
--encontrando cpf candidado
SELECT DISTINCT nome_candidato, cpf_candidato
FROM `basedosdados.br_tse_eleicoes.despesas_candidato`
WHERE sigla_uf = 'BA' AND ano = 2018 AND cargo = 'governador'
ORDER BY nome_candidato;
--resposta (23790997587)
-- resolvendo o desafio
SELECT COUNT(DISTINCT cpf_cnpj_fornecedor) AS CONTAGEM_FORNECEDORES,
ROUND(SUM(valor_despesa), 2) AS TOTAL_DESPESAS,
MAX(valor_despesa) AS MAIOR_DESPESA,
MIN(valor_despesa) AS MENOR_DESPESA
FROM `basedosdados.br_tse_eleicoes.despesas_candidato`
WHERE cpf_candidato = '23790997587' AND ano = 2018 AND sigla_uf = 'BA'
-- GROUP BY HAVING CASE
SELECT nome_candidato, COUNT(DISTINCT cpf_cnpj_doador) AS qtd_doadores,
ROUND(SUM(valor_receita), 2) AS Receita_Total
FROM `basedosdados.br_tse_eleicoes.receitas_candidato`
WHERE ano = 2018 AND cargo = 'governador' AND sigla_uf = 'BA'
GROUP BY nome_candidato
HAVING Receita_Total < 50000
ORDER BY Receita_Total DESC;
SELECT nome_candidato, sigla_partido, COUNT(DISTINCT cpf_cnpj_doador) AS qtd_doadores,
ROUND(SUM(valor_receita), 2) AS Receita_Total,
CASE WHEN SUM(valor_receita) > 1000000 THEN 'alta'
ELSE 'baixa' END AS Categoria_Receita,
CASE WHEN sigla_partido IN ('PT', 'PSOL', 'PCD') THEN
'ESQUERDA' ELSE 'DIREITA' END AS espectro_partidario
FROM `basedosdados.br_tse_eleicoes.receitas_candidato`
WHERE ano = 2018 AND cargo = 'governador' AND sigla_uf = 'BA'
GROUP BY nome_candidato, sigla_partido
ORDER BY Receita_Total DESC;
-- DESAFIO
--Quantidade de fornecedores
--Soma valor total de despesas dos candidatos, por candidato a governador-BA
-- resolvendo o desafio
SELECT DISTINCT nome_candidato, COUNT(DISTINCT cpf_cnpj_fornecedor) AS quantidade_fornecedores,
ROUND(SUM(valor_despesa), 2) AS total_despesas,
CASE WHEN SUM(valor_despesa) > 100000 THEN 'alto' ELSE 'baixo' END AS Consumo
FROM `basedosdados.br_tse_eleicoes.despesas_candidato`
WHERE ano = 2018 AND cargo = 'governador' AND sigla_uf = 'BA'
GROUP BY nome_candidato
ORDER BY total_despesas DESC;
-- JOIN - JUNÇÃO DE TABELAS
-- JOIN = INNER JOIN - MESMO RESULTADO
/* SELECT <lista_atributos>
FROM tabela A JOIN tabela B
ON A.key = B.key*/
-- LEFT(RIGHT) OUTER JOIN - INTERSEÇÃO + RESULTADOS DA TABELA QUE NÃO ESTÃO NA TABELA B E VICE-VERSA
/* SELECT <lista_atributos>
FROM tabela A LEFT(RIGHT) OUTER JOIN tabela B
ON A.key = B.key*/
-- FULL OUTER JOIN - UNIÃO ENTRE AS TABELAS
/* SELECT <lista_atributos>
FROM tabela A FULL OUTER JOIN tabela B
ON A.key = B.key*/
SELECT bens.id_candidato_bd,
cands.cpf,
cands.nome,
SUM(valor_item) AS bens_total
FROM `basedosdados.br_tse_eleicoes.bens_candidato` AS bens JOIN `basedosdados.br_tse_eleicoes.candidatos` AS cands ON bens.id_candidato_bd = cands.id_candidato_bd
WHERE bens.ano = 2018 AND bens.sigla_uf = "BA" AND cands.ano = 2018 AND cands.cargo = "governador"
GROUP BY bens.id_candidato_bd, cands.cpf, cands.nome
ORDER BY bens_total DESC