Jump to content
kokin

Função Count() duvidas;

Recommended Posts

kokin

Muito boa tarde  :cheesygrin:, tenho duvidas sobre a função count no sql e espero que alguém me consiga esclarecer :P .

A duvida designa-se por a função count me dar um único resultado, e eu pretendo que me fizesse vários resultados por um tipo de ordem.

Ou seja imaginemos que tenho estes dados na minha base de dados

id_rating ;    rating;    id_utilizador;  id_evento;

    1                    5          1                          2

    2                    4          4                          2

    3                    5          7                          4

    4                    3          8                          4

A minha ideia seria mostrar uma visualização de quantas rating existe por cada evento através de um count.

Sendo assim o resultado seria id_evento 2 -> 2 votos e id_evento 4 -> 2

É me possível fazer através do count esta minha ideia?

Cumprimentos

Share this post


Link to post
Share on other sites
kokin

Surgiu me um problema  :cheesygrin:

Queria fazer o mesmo método, mas para o numero de comentários por mês só que estou a guardar a data pelo tipo date no sql.

É possível fazer isto na query?

Share this post


Link to post
Share on other sites
kokin

Sim

Esta é a query que tenho mas não sei como fazer essa parte do mês, reparei nuns topicos na internet que falavam na função

MONTH ( date ) tentei mas não consegui..

SELECT COUNT(comentario) as 'comentario' FROM evento_comentarios, evento, entidade where evento_comentarios.id_evento=evento.id_evento and  evento.id_entidade=entidade.id_entidade and entidade.id_entidade=1 GROUP BY evento_comentarios.id_evento

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

Tens que comparar o campo data à data actual, por exemplo MONTH(campo_data) = MONTH(NOW()).  Mas também tens que verificar o ano, porque se não o fizeres, daqui a um ano aparece-te os eventos de um dado mês de 2011 e 2012 e assim sucessivamente...

Share this post


Link to post
Share on other sites
yoda

Boas,

Tens que comparar o campo data à data actual, por exemplo MONTH(campo_data) = MONTH(NOW()).  Mas também tens que verificar o ano, porque se não o fizeres, daqui a um ano aparece-te os eventos de um dado mês de 2011 e 2012 e assim sucessivamente...

Isso não resolve o problema nem funciona. Não se sabe os periodos de tempo.

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

Eu percebi que queria mostrar o número de comentários do mês actual e como ele falou no MONTH dei um exemplo, utilizando-o.

Se for entre um intervalo de tempo, podes utilizar o BETWEEN. Com a informação que deu, também não é possível dizer muito mais...

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

Hum....

Ele disse que queria o mesmo mas agrupado por mês... Ora como provavelmente ele quererá separado por anos, para não misturar:

SELECT COUNT(rating) FROM tabela GROUP BY DATE_FORMAT(campo_data,'%Y-%m');

#ou

SELECT COUNT(rating),DATE_FORMAT(campo_data,'%Y-%m') as campo_data_mes FROM tabela GROUP BY campo_data_mes;

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.