Jump to content


Photo

Contar E Listar Registros Repetidos


  • Faça o login para participar
4 replies to this topic

#1 leonelbr

leonelbr

    12 Horas

  • Usuários
  • 205 posts
  • Sexo:Masculino

Posted 11/08/2008, 14:56

FalAe!

Tenho uma tabela de avaliação (com valores de 0 a 10) com uns 1000 registros. Digamos que exista 100 registros de cada numero, o que eu faço que conseguir um resultado assim:

---------------------------------------
1000 pessoas avaliaram
---------------------------------------
0 - 100 10%
1 - 100 10%
2 - 100 10%
3 - 100 10%
4 - 100 10%
5 - 100 10%
6 - 100 10%
7 - 100 10%
8 - 100 10%
9 - 100 10%
---------------------------------------

Obs.: Além no campo "nota", existem diversos outros na mesma tabela.

Obrigado desde já.
FLASH FORWARD - Novo seriado da ABC. Um substituto para LOST?
Série de ficção cientifica que promete arrastar muitos fãs, principalmente os de Lost. Confira mais em:
www.flashforwardbr.com
-------------------------------------------------------------------------------------------------
Portal Evangélico ( AMIZADE | Downloads | Cartões Virtuais )

#2 Ticreca

Ticreca

    Normal

  • Usuários
  • 105 posts
  • Sexo:Masculino

Posted 11/08/2008, 15:39

olá...
nao sou mto bom..
mas eu faria assim...
usario um distinct para pegar cada nota e depois usaria um count para cada...
tudo isso dentro de um while...
ex:
$sql= "select distinct(nota) as nota from tabela";
$res=mysql_query($sql, $conn);
$sql_total = "select count(*) as total from tabela";
$res_total = mysql_query($sql_total, $conn);
$row_total - mysql_fetch_array($res_total);
$total = $row_total["total"];
while($row=mysql_fetch_array($res))
{
		 $nota = $row["nota"];
		 $conta = "select count(nota) as nota from tabela where nota='$nota'";
		 $res_conta = mysql_query($conta, $conn);
		 $row_conta = mysql_fetch_array($res_conta);
		 $qte_nota = $row_conta["nota"];
		 $porcento = (($qte_nota*100)/$total);
		 echo $nota."-".$row_conta["nota"]."-".$porcento."%";
}
eu acredito que esse while mostraria
Nome da nota - quantidade da nota
0 - 10 - 10%
1 - 20 - 20%
2 - 5 - 5%
e assim vai....
espero ter ajudado....

Edição feita por: Ticreca, 11/08/2008, 15:51.


#3 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 11/08/2008, 16:19

SELECT nota, 

COUNT(nota) AS total, 

(COUNT(nota)*100/(select count(t1.nota) from teste t1)) AS percent

FROM teste GROUP BY nota


#4 leonelbr

leonelbr

    12 Horas

  • Usuários
  • 205 posts
  • Sexo:Masculino

Posted 13/08/2008, 14:16

FalAe!

Obrigado por responderem. Vou terminar de adaptar no sistema e depois escrevo aqui se funcionou.

Vlw!

Edição feita por: leonelbr, 13/08/2008, 14:16.

FLASH FORWARD - Novo seriado da ABC. Um substituto para LOST?
Série de ficção cientifica que promete arrastar muitos fãs, principalmente os de Lost. Confira mais em:
www.flashforwardbr.com
-------------------------------------------------------------------------------------------------
Portal Evangélico ( AMIZADE | Downloads | Cartões Virtuais )

#5 Cipriano de Borba

Cipriano de Borba

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 21/10/2015, 09:04

SELECT nota, 

COUNT(nota) AS total, 

(COUNT(nota)*100/(select count(t1.nota) from teste t1)) AS percent

FROM teste GROUP BY nota

Não entendi nada nesse código que você escreveu (sou iniciante) mas funcionou perfeitamente, muito melhor do que eu precisava. Um abraço






1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq