Eu tenho mesa:
name product
john beer
john milk
john tea
john beer
emily milk
emily milk
emily tea
john beer
preciso selecionar nesta tabela, quando a saída será:
name count(tea) count(beer) count(milk) count(total)
john 1 3 1 5
emily 1 0 2 3
Alguma idéia de como fazer isso?
DB: oracle 12
Use agregação condicional:
select name
sum(case when product = 'tea' then 1 else 0 end) cnt_tea,
sum(case when product = 'beer' then 1 else 0 end) cnt_beer,
sum(case when product = 'milk' then 1 else 0 end) cnt_milk,
count(*) total
from mytable
group by name
Dependendo do seu banco de dados, pode haver opções mais organizadas disponíveis para expressar as contagens condicionais.
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras