Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
[C#] Calcular o número de valores repetidos numa Base de Dados
07-05-2013, 19:16 (Esta mensagem foi modificada pela última vez a: 07-05-2013 19:17 por dininis.)
Mensagem: #1
[C#] Calcular o número de valores repetidos numa Base de Dados
Boas, gostaria de saber como posso obter o número de valores repetidos de uma coluna de uma determinada tabela.

Exemplo: Tabela { Coluna_1, Coluna_2, Coluna_3 }

Título: Tabela
Coluna_1 | Coluna_2 | Coluna_3
ID1 - - -| 2_Ex1 - -| 3_Ex1
ID2 - - -| 2_Ex1 - -| 3_Ex1
ID3 - - -| 2_Ex1 - -| 3_Ex1
ID4 - - -| 2_Ex2 - -| 3_Ex1
ID5 - - -| 2_Ex2 - -| 3_Ex1
ID6 - - -| 2_Ex3 - -| 3_Ex2
ID7 - - -| 2_Ex3 - -| 3_Ex2
ID8 - - -| 2_Ex3 - -| 3_Ex2
ID9 - - -| 2_Ex3 - -| 3_Ex2
ID10 - - | 2_Ex3 - -| 3_Ex2


Resultado Final

Coluna_2
- - - Número de 2_EX1: 3
- - - Número de 2_EX2: 2
- - - Número de 2_EX3: 5


Coluna_3
- - - Número de 3_EX1: 5
- - - Número de 3_EX2: 5
- - - Número de 3_EX3: 0


Obrigado,
Dininis
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
07-05-2013, 20:56
Mensagem: #2
RE: [C#] Calcular o número de valores repetidos numa Base de Dados
Usa uma query do genero:

Código:
SELECT nome_da_coluna, COUNT(nome_da_coluna) FROM tabela GROUP BY nome_da_coluna

Pedidos de ajuda via PM serão ignorados
Acordo ortográfico? Desconheço, obrigado Wink
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
07-05-2013, 21:15
Mensagem: #3
RE: [C#] Calcular o número de valores repetidos numa Base de Dados
(07-05-2013 20:56)Corvus Escreveu:  Usa uma query do genero:

Código:
SELECT nome_da_coluna, COUNT(nome_da_coluna) FROM tabela GROUP BY nome_da_coluna

Problema é que, como ainda não dei SQL (serão os próximos dois módulos deste ano) não sei bem como é que funciona junto com C#. Como é que utilizo essa query? Quero colocar o valor (presumo que retorne um resultado) numa String (label1.Text por exemplo)

Thanks
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
07-05-2013, 22:23
Mensagem: #4
RE: [C#] Calcular o número de valores repetidos numa Base de Dados
Recomendo leitura: http://www.w3schools.com/sql/

[Imagem: ztc07a.jpg]
Não resolvo dúvidas por PM.
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
08-05-2013, 08:53
Mensagem: #5
RE: [C#] Calcular o número de valores repetidos numa Base de Dados
Mas essa tabela está numa base de dados ou é apenas um array no código? É que da maneira que disseste, pensei que estivesses a falar de tabelas de bases de dados.

Se isso é um array, vais ter de arranjar um array secundário para cada coluna que queres contar. Percorres o array original e para cada valor, se n existir no array secundario, inseres com o contador a 1, se existir apenas incrementas o contador.

Pedidos de ajuda via PM serão ignorados
Acordo ortográfico? Desconheço, obrigado Wink
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
08-05-2013, 09:30 (Esta mensagem foi modificada pela última vez a: 08-05-2013 09:47 por dininis.)
Mensagem: #6
RE: [C#] Calcular o número de valores repetidos numa Base de Dados
Sim, cada número resultante ficará na sua respetiva label (é só uma pequena revisão dos registos presentes na Base de Dados)

Antes tentei fazer da seguinte forma, mas sem sucesso:
Código:
DataRowCollection dra = DadosBD.Tables["Avaliado"].Rows;
                foreach (DataRow dr in dra)
                     contagemEscalao[Convert.ToInt32(dr[2])]++;

Mas depois lembrei-me que o resultado obtido, não era esse número em específico, mas sim a chave primária da tabela: Escalao(idEscalao, Escalao, Salario)

Ficou da seguinte forma:
Código:
DataRowCollection dra = DadosBD.Tables["Avaliado"].Rows;
                foreach (DataRow dr in dra)
                {
                    switch (Convert.ToInt32(dr[2]))
                    {
                        case 167: contagemEscalao[0]++; break;
                        case 188: contagemEscalao[1]++; break;
                        case 205: contagemEscalao[2]++; break;
                        case 218: contagemEscalao[3]++; break;
                        case 235: contagemEscalao[4]++; break;
                        case 245: contagemEscalao[5]++; break;
                        case 272: contagemEscalao[6]++; break;
                        case 299: contagemEscalao[7]++; break;
                        case 340: contagemEscalao[8]++; break;
                        case 370: contagemEscalao[9]++; break;

                    }
                }
* Obtenho esse valor na tabela "Avaliado" e "Avaliador", pois trata-se de uma relação entre tabelas. Quem for professor, provavelmente deverá conhecer esses códigos Tongue

Enfim, ao final de contas era tudo um erro mínimo. Programação, sempre a desafiar o raciocínio xD
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)