Difícil - Group By
Como faço para contar o número de pessoas que fazer aniversário em um determinado mês? O resultaro seria assim:
Tentei assim e não funcionou:
Assim também não funciona:
[b:d81c6d563d]AFARIAS[/b:d81c6d563d], ME AJUDA BROTHER!!!
mes qtd 1 51 2 32 3 61 . . . . . . 12 65
Tentei assim e não funcionou:
SELECT EXTRACT(MONTH FROM P.DT_NASCIMENTO), COUNT(EXTRACT(DAY FROM P.DT_NASCIMENTO)) FROM PESSOA P GROUP BY EXTRACT(MONTH FROM P.DT_NASCIMENTO)
Assim também não funciona:
SELECT EXTRACT(MONTH FROM P.DT_NASCIMENTO), COUNT(EXTRACT(DAY FROM P.DT_NASCIMENTO)) FROM PESSOA P GROUP BY 1
[b:d81c6d563d]AFARIAS[/b:d81c6d563d], ME AJUDA BROTHER!!!
Tenil
Curtidas 0
Respostas
Afarias
17/10/2003
no Interbase e no FB 1.0 não é possível agrupar por função (no FB 1.5 pode) -- e, o GROUP BY não pode ser pelo índice do campo (como o ORDER BY) ... sendo assim...
vc pode criar uma view como::
create view aniversarios (nome varchar(30), dia smallint, mes smallint, ano smallint) as
select nome, extract(day from data_nasc), extract(month from data_nasc), extract(year from data_nasc)) from pessoa;
e, faça sua query em cima desta view::
select mes, count(*) from aniversarios
group by mes;
T+
PS: a view só precisa do campo MES claro... o resto só botei como exemplo.
vc pode criar uma view como::
create view aniversarios (nome varchar(30), dia smallint, mes smallint, ano smallint) as
select nome, extract(day from data_nasc), extract(month from data_nasc), extract(year from data_nasc)) from pessoa;
e, faça sua query em cima desta view::
select mes, count(*) from aniversarios
group by mes;
T+
PS: a view só precisa do campo MES claro... o resto só botei como exemplo.
GOSTEI 0
Tenil
17/10/2003
Valeu mano,
fiz como vc falou, deu certo.
Mais uma vez, obrigado.
fiz como vc falou, deu certo.
Mais uma vez, obrigado.
GOSTEI 0