Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mara Rodrigues

Dúvida select count

Recommended Posts

Alguém pode me ajudar a resolver?

Dada a tabela: ELEICOES

NomeCandidato         Cargo        VotosValidos                      Sexo            CodigoPartido
Até 100 caracteres     Prefeito     Número Inteiro Positivo      Feminino      1 a 10
                                  Vereador                                             Masculino

solicita-se que sejam apresentadas soluções para o que se pede abaixo:
Escrever um comando SQL para mostrar, em uma linha, a quantidade de candidatos do sexo masculino como "CandidatosHomens" e a quantidade de candidatas do sexo feminino como "CandidatasMulheres".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Mara! Isso pode ser feito com COUNT ou SUM... no meu exemplo usei o COUNT, mas é preciso ter uma chave primária (um ID por exemplo) para termos certeza do resultado.

 

O código SQL é esse:

SELECT count(case when eleicoes.sexo = 'M' then 1 end) AS CandidatosHomes,
       count(case when eleicoes.sexo = 'F' then 1 end) AS CandidatosMulheres
FROM eleicoes;

 

Criei uma tabela para este teste. A única coisa diferente foi usar a coluna Sexo como CHAR(1) para poupar espaço =) Eu sei que é overoptimization, mas não custa nada pra nós e seu software agradece no futuro.

 

CREATE TABLE eleicoes
(
    id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,    
    nome_candidato VARCHAR(255),
    cargo VARCHAR(255),
    votos_validos INT(11),
    sexo CHAR(1),
    codigo_partido INT(11)
);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por lucianfpaula
      Galera tenha a seguinte duvida, tenho 3 tabelas onde estou trazendo os dados e preciso fazer um count em uma delas
       
      SELECT *  FROM tabela1 AS t1  INNER JOIN tabela2 AS t2 ON t1.idt1 = t2.idt2 INNER JOIN tabela3 AS t3 ON t3.idt3 = t1.idt1  
      a duvida é: quero manter o SELECT * mas também preciso de COUNT(t3.idT3)
      não sei se é possível fazer isso, mas gostaria de ter certeza antes de focar em outra solução
      desde já muito grato.
    • Por lezão
      Boa noite!
      Td bem com vcs?
      Estou usando esse código mas não retorna nada!
       
      Alguém pode me ajudar ?
       
       
      <?php $sql = mysqli_query($link, "SELECT ver_post, COUNT(ver_post) AS Quantidade FROM tab_comentarios where ver_post = 'red' Group by ver_post"); ?> Variável
      <?php echo $Quantidade; ?>  
    • Por marsolim
      galera tô tentando fazer uma classificação aqui junto com um sum e não to conseguindo. até o momento consigo gerar a tabela de desempenho assim
       
         $sql = "SELECT *,SUM(pontos_total) AS totais FROM desempenho INNER JOIN usuarios ON usuarios.id = desempenho.id_usuario GROUP BY id_usuario ORDER BY totais DESC";     if($res = mysqli_query($con, $sql)){         while($row = mysqli_fetch_assoc($res)){             echo $row["nome"] . " - " . $row["totais"] . "<br>";         }     }  
      ok isso me gera uma tabela como segue
       
      jean claude van damme - 152
      bruna marquezine - 149
      bruce willis - 131
      ...
       
      o que não to conseguindo é incluir um contagem pra saber em que posição a pessoa está por exemplo se a bruna marquezine logar no sistema deve aparecer pra ela
       
      Sua pontuação: 149
      Sua posição: 2
       
      to tentando incluir uma clausula pra contar os totais maiores ou iguais ao do usuário logado e assim a quantidade de registros que retornar é a posição da pessoa.
       
      detalhe pertinente: totais é uma soma de vários subtotais espalhados pela tabela em nome de cada usuario tipo
       
      nesse cenario temos como soma dos pontos totais
       
      1 - 8
      2 - 13
      3 - 3
      4 - 7
      5 - 2
       
      alguma ideia de como posso pegar a posição apenas alterando o sql?
    • Por Alberto Nascimento
      Tenho o seguinte código que faz a consulta e contagem de todos os campos de uma tabela e retorna a quantidade através de ECHO.
      Porém preciso que tenha dois critérios a seguir para então contar:
      <?php $servidor = ""; $usuario = ""; $senha = ""; $dbname = ""; $conn = mysqli_connect($servidor, $usuario, $senha, $dbname); if(!conn) { echo "Error"; } $sql="SELECT count(id) AS total FROM tbl_test"; $result=mysqli_query($conn,$sql); $values=mysqli_fetch_assoc($result); $num_rows=$values['total']; echo $num_rows; ?> Só que preciso que primeiro encontre todos os registros que tiverem o nome "ALBERTO" no campo NOME e logo em seguida faça a contagem dos registros de acordo com o campo SITUACAO .
      Ficaria desta forma a ser exibido:
       
       
      Obrigado !!
    • Por biakelly
      Oi, criei uma função para contar uma coluna específica:
       
      function contando-usuarios() { global $conn, $db-nativas; $sql = "SELECT COUNT(*) FROM $tabela-nativa WHERE ID = '" . ['$contaenfermeiras'] . "'"; if ($result = mysqli_query($conn, $sql)) { if (mysqli_num_rows($result) >= 1) { $row = mysqli_fetch_row($result); return $row['$contaenfermeiras']; } } }  
       
      Ao chamar no index desta forma:
       
      <?php echo ($contaenfermeiras);?>  
      Gera erro:  Notice: Undefined variable: contaenfermeiras in C:\xampp\htdocs\hosp\index.php on line 5
       
      A linha 5 é a chamada: <?php echo ($contaenfermeiras);?>

      To fazendo algo errado? Como chamo corretamente?
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.