Forum Pplware
[C#] Calcular o número de valores repetidos numa Base de Dados - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: [C#] Calcular o número de valores repetidos numa Base de Dados (/showthread.php?tid=15397)



[C#] Calcular o número de valores repetidos numa Base de Dados - dininis - 07-05-2013 19:16

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


RE: [C#] Calcular o número de valores repetidos numa Base de Dados - Corvus - 07-05-2013 20:56

Usa uma query do genero:

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



RE: [C#] Calcular o número de valores repetidos numa Base de Dados - dininis - 07-05-2013 21:15

(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


RE: [C#] Calcular o número de valores repetidos numa Base de Dados - progster - 07-05-2013 22:23

Recomendo leitura: http://www.w3schools.com/sql/


RE: [C#] Calcular o número de valores repetidos numa Base de Dados - Corvus - 08-05-2013 08:53

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.


RE: [C#] Calcular o número de valores repetidos numa Base de Dados - dininis - 08-05-2013 09:30

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