Ir para conteúdo
Fórum Script Brasil
  • 0

Como agrupar e somar registros repetidos no banco de dados?


jeandelima

Pergunta

Olá pessoal tudo bem?

Estou com um problema em um trabalho que peguei pra fazer, e queria saber se podem me ajudar. Um cliente me passou uma tarefa de criar umas tabelas e gráficos para o site dele que desenvolveram em codeigniter, só que eu empaquei em uma parte que preciso agrupar e somar os registros duplicados. Eu consegui agrupar por data, que é o que necessito fazer, mas na hora de somar quantas vezes o registro se repete, acabei não tendo sucesso. Abaixo vou deixar duas imagens pra explicar melhor onde estacionei.

Tenho duas tabelas no banco, uma de cadastro de clientes e uma de cadastro de fontes de contato. A de fontes de contato, é uma tabela onde a empresa cadastra os meios de propaganda dele (google, facebook, whatsapp, panfletos e etc), e quando o cliente é cadastrado, esse meio de propaganda é selecionado no formulário, e registra o ID da fonte de contato na tabela de clientes.

 

A primeira imagem é a tabela do jeito que está sendo exibida, ela traz todos os registros referentes ao dia, marcando a quantidade "1". O que eu precisaria no momento, é agrupar esses registros, de forma a mostrar em apenas uma linha, os registros únicos e os registros duplicados de cada dia.

O resultado deve se parecer com o que está na segunda imagem, onde existem apenas duas linhas, uma para o dia 16 e outra para o dia 15.

 

Eu tentei usar count, group by, distinct, join, e mesmo assim não obtive sucesso. O que mais se aproximou do resultado foi a primeira imagem onde marquei os registros em vermelho. A tabela de clientes tem uma coluna chamada "data_registro" que é a data do cadastro do cliente, e tem uma coluna chamada "fontes_id_fonte" que foi criada pelo programador pra registrar o ID da fonte de contato que vem de outra tabela como mencionei mais acima.

Não sei se consegui explicar bem, mas espero que possam me ajudar. Caso seja necessário mais informações, ficarei feliz em fornecer. Desde já, muito obrigado.

A0yvz.png

jUUSr.png

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Eu sou péssimo em MySQL. Apelando para a Gemini eu consegui isso:

CREATE 
VIEW `vwpropaganda` AS
    SELECT 
        `tbpropaganda`.`data` AS `data`,
        SUM((CASE
            WHEN (`tbpropaganda`.`tipoPropaganda` = 'jornal') THEN 1
            ELSE 0
        END)) AS `jornal`,
        SUM((CASE
            WHEN (`tbpropaganda`.`tipoPropaganda` = 'facebook') THEN 1
            ELSE 0
        END)) AS `facebook`
    FROM
        `tbpropaganda`
    GROUP BY `tbpropaganda`.`data`

Eu jamais iria conseguir um negócio desses. Ao invés de montar uma consulta MySQL eu iria montar um código PHP para tentar chegar no resultado esperado.

Captura de tela 2024-06-05 202732.png

Captura de tela 2024-06-05 202818.png

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...