Pesquise sobre a função AVG que vai te fazer sentido…
Eu sei usar ela amigo , mas olha ai , ele quer o ano de 2017 , não tem o atributo ano , e o valor medio de vendas? eu fiz assim : select avg(valortotal) As valorMedio from venda ; será que é isso mesmo ?
Boa tarde…
Depende muito de como você deixou para o campo dataVenda
Tente o comando abaixo, qualquer coisa só de uma perfumada de acordo com sua tabela…
SELECT AVG(valorTotal) FROM Venda Where dataVenda Like %2017;
Mas o 2017 não aparece amigo ?
Mas o 2017 será preenchido ainda em sua tabela certo?
Até porque vai precisar das informações para calcular o valor
estou pensando em algo aqui , espera , eu tenho dataVenda, eu me esqueci disso , obrigado ai , acho que agora sei o que tenho que fazer ,obrigado ai .
Tranquilo,
Qualquer dúvida volte a perguntar…
Só acrescentando, após o WHERE, você também pode optar pelo BETWEEN
pensei nisso também , grato ai , eu lerdei aqui , mas acho que é o stress , o pgadmin4 me fez raiva de mais hoje , tive que trocar para o pgadmin3 , internet fazendo raiva , roteador desconfigurado ainda.
Sem problemas rsrs
Acaba tirando qualquer um do sério…
Boa sorte
Abraços
fiz assim cara e funfou
SELECT AVG(valorTotal) FROM Venda Where dataVenda between '03/01/2017’and ‘03/05/2017’ ;
Sim…
Com o between dá certo.
Mas ele somente irá levar valor entre essas datas que você estabeleceu('03/01/2017’ e ‘03/05/2017’)
Isto mesmo que ele queria , obrigado ai .
Você não disse o que sabia ou não, fica dificil adivinharmos não é mesmo?
E outra, sempre use as funções nativas do banco…
https://www.postgresql.org/docs/8.1/static/functions-datetime.html
E considere muito o que o @Nadall disse sobre o between…
No seu caso, melhor considerar apenas pelo ano…
SELECT AVG(valorTotal) FROM Venda
WHERE EXTRACT(YEAR FROM DATE dataVenda) = 2017;
E assim você vai brincando, conhecendo mais o banco e sua sintaxe SQL, boa sorte!
oi obrigado pela atenção , estou aprendendo ainda, me desculpe ai , se não fui preciso no que era para ser feito …
Oi me ajude em outra aqui se puder , eu fiz, mas tá meio estranho,
Sim, pode perguntar…
Quanto ao union, vou deixar vocês resolverem, mas a consulta mais acima sobre o cliente mais velho, aproveite que está estudando e já vai corrigindo sua lógica… evite usar subquery, elas pecam em performance, use sempre os recursos que o sql te dá, por exemplo…
select nome, MAX(salario), MAX(idade) from cliente;
Isso já mata sua questão e evita uma query dentro de outra… aproveite e extenda seus estudos pesquisando sobre funções de agrupamento e para que elas servem…
Primeiro, está certo o UNION ALL para duas tabelas diferentes?
No caso você está buscando da venda e da cliente…
Segundo, pelo que eu conheço(bem pouco de union)
A sintaxe do “union” é para realizar um distinct e elimina as linhas duplicadas.
E a “union all” que você usou, não faz o distinct, ele traz tudo…
Então na sua query, ele não está comparando as linhas, pois são tabelas e colunas diferentes, então está trazendo tudo assim misturado