-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaula11.sql
More file actions
99 lines (65 loc) · 2.13 KB
/
aula11.sql
File metadata and controls
99 lines (65 loc) · 2.13 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
-- ## CONSULTA ORDENADA ##
-- ASCENDENTE
-- TEXTO (A-Z)
SELECT * FROM MARCA ORDER BY ds_marca ASC;
-- NUMEROS (0-N)
SELECT * FROM MARCA ORDER BY id_marca ASC;
-- DATAS (Menor até a Maior)
SELECT * FROM MODELO ORDER BY ANO ASC;
-- DESCENDENTE
-- TEXTO (Z até A)
SELECT * FROM MARCA ORDER BY ds_marca DESC;
-- NUMEROS (N-0)
SELECT * FROM MARCA ORDER BY id_marca DESC;
-- DATAS (Maior até a menor)
SELECT * FROM MODELO ORDER BY ANO DESC;
-- CONSULTA AGRUPADA
SELECT ds_modelo FROM MODELO;
-- consulta simples com group by
SELECT ds_modelo FROM MODELO GROUP BY ds_modelo;
-- consulta agrudapa com funções
-- avg - média de todos os veículos
select avg(valor) from modelo;
-- avg com group by - média de veículos por modelo
select avg(valor), ds_modelo from modelo group by ds_modelo;
-- avg com group by - média de veículos por cambio
select avg(valor), cambio from modelo group by cambio;
-- min - obter manor do conjunto
select min(valor) from modelo;
select min(valor), ds_modelo from modelo group by ds_modelo;
-- max - obter manor do conjunto
select max(valor) from modelo;
select max(valor), ds_modelo from modelo group by ds_modelo;
-- count: contagem de linhas
select count(valor) from modelo;
select count(valor), ds_modelo from modelo group by ds_modelo;
-- sum: somar os valores das linhas
select sum(valor) from modelo;
select sum(valor) valor, ds_modelo
from modelo
group by ds_modelo order by valor asc;
-- stdev: desvio padrão
select stddev(valor) from modelo;
select stddev(valor), ds_modelo from modelo group by ds_modelo;
-- HAVING
select AVG(valor), ds_modelo
FROM modelo
group by ds_modelo
having avg(valor)>20;
-- EXEMPLO INCORRETO: NÃO É POSSÍVEL CALCULAR A MEDIA ATRAVÉS DO WHERE
select AVG(valor), ds_modelo
FROM modelo
group by ds_modelo
WHERE avg(valor)>20;
-- UTILIZANDO APENAS WHERE
-- select * from modelo;
select AVG(valor), ds_modelo
FROM modelo
WHERE id_modelo<=5
group by ds_modelo ;
-- UTILIZANDO WHERE E HAVING
select AVG(valor), ds_modelo
FROM modelo
WHERE id_modelo<=5
group by ds_modelo
having avg(valor)<36