Pagina 1 di 2

Query SQL per trovare il numero di ripetizioni di un valore

MessaggioInviato: 6 mag 2019, 9:20
da boiler
Ciao a tutti

I miei ricordi di SQL sono molto arrugginiti...
Sono riuscito a scrivere la query che mi ritorna i dati che mi servono.
Ora sarebbe utile se potessi estrarre un'altra informazione.

Quello che ottengo al momento è una lista con numeri di serie, che possono essere presenti piú di una volta e non sono necessariamente in ordine:
Codice: Seleziona tutto
1111
1111
2222
1111
2222
3333
4444
5555
4444
4444
6666


Quello che vorrei ottenere è una lista di quante occorrenze per ogni numero di serie ci sono (non deve essere necessariamente collegata al numero di serie stesso, è solo per statistica, quindi i dati possono essere "anonimi").

Nel caso dell'esempio qui sopra il risultato che vorrei sarebbe (anche in un altro ordine va bene)
Codice: Seleziona tutto
3
2
1
3
1
1


Mi date un suggerimento su come procedere?

Grazie, Boiler

Re: Query SQL per trovare il numero di ripetizioni di un val

MessaggioInviato: 6 mag 2019, 9:49
da PietroBaima
Con Mathematica è di una semplicità disarmante, usando il comando Tally

Codice: Seleziona tutto
Vect = {1111, 1111, 2222, 1111, 2222, 3333, 4444, 5555, 4444, 4444,  6666};
Tally[Vect]


che restituisce

Codice: Seleziona tutto
{{1111, 3}, {2222, 2}, {3333, 1}, {4444, 3}, {5555, 1}, {6666, 1}}


Ciao,
Pietro.

Re: Query SQL per trovare il numero di ripetizioni di un val

MessaggioInviato: 6 mag 2019, 9:56
da boiler
Anche in C# :mrgreen:

Codice: Seleziona tutto
var vect = new int[] {1111, 1111, 2222, 1111, 2222, 3333, 4444, 5555, 4444, 4444,  6666};
var occurrences = vect.GroupBy (n => n);
foreach (var ii in occurrences)
{
   Console.WriteLine(ii.Count());
}


Dico la verità: non è un problema che non riuscirei a risolvere altrimenti... era piú interesse personale di scoprire se è possibile farlo in SQL ;-) (linguaggio che uso pochissimo e a livello molto superficiale).

Boiler

Re: Query SQL per trovare il numero di ripetizioni di un val

MessaggioInviato: 6 mag 2019, 10:03
da PietroBaima
Anche io non uso spesso SQL, anche se ogni tanto mi tocca...

Forse questo può essere di aiuto. :D

Re: Query SQL per trovare il numero di ripetizioni di un val

MessaggioInviato: 6 mag 2019, 10:24
da boiler
Perfetto, grazie!
Anche se ora ho il sospetto che il resto della query non faccia quello che voglio #-o

Penso che farò un export e me lo analizzo in C# :mrgreen: :lol:

Boiler

Re: Query SQL per trovare il numero di ripetizioni di un val

MessaggioInviato: 6 mag 2019, 10:26
da Praticamente
Codice: Seleziona tutto
create table Boilers(series int);

insert into Boilers values(1111);
insert into Boilers values(1111);
insert into Boilers values(2222);
insert into Boilers values(1111);
insert into Boilers values(2222);
insert into Boilers values(3333);
insert into Boilers values(4444);
insert into Boilers values(5555);
insert into Boilers values(4444);
insert into Boilers values(4444);
insert into Boilers values(6666);

select series, count (series) from Boilers group by series


dovrebbe darti
Codice: Seleziona tutto
1111|3
2222|2
3333|1
4444|3
5555|1
6666|1

Re: Query SQL per trovare il numero di ripetizioni di un val

MessaggioInviato: 9 mag 2019, 16:58
da jumpmad
SELECT COUNT (*) AS SERIALI FROM <nome_tabella> GROUP BY <nome_campo>;

Re: Query SQL per trovare il numero di ripetizioni di un val

MessaggioInviato: 10 mag 2019, 7:38
da jumpmad
Potrei capire da chi mi ha dato voto negativo qual è il problema? magari posso imparare qualcosa di nuovo.

Re: Query SQL per trovare il numero di ripetizioni di un val

MessaggioInviato: 10 mag 2019, 8:31
da lelerelele
uno dei tanti siti interessanti per SQL.

https://www.codecademy.com/articles/sql-commands

E' sempre utile tenersi a portata di mano i comandi....specie se si usano raramente. :-)

All'inizio mi è capitato più volte di usare access per crearmi le sql, anzi, ci sono anche progeammini free che fanno proprio questo, generano sql.

(non sapendo cosa devi ottenere) Se poi usi windows, usando l'oggetto datadgrid, associato all'oggetto datagridview, collegato ad una table locale, puoi visualizzare, filtrare ed ordinare, qualunque colonna.

saluti.

Re: Query SQL per trovare il numero di ripetizioni di un val

MessaggioInviato: 10 mag 2019, 11:31
da xyz
Uno dei database DBMS SQL più usati è SQLite (è un codice C da aggiungere ad altri programmi, non ha funzioni da server) open source multi piattaforma:

https://www.sqlite.org/index.html

si trova integrato in tutti i telefoni Android e in altri linguaggi come il Python e PHP.

Esistono anche pagine di test online con SQLite:

https://www.tutorialspoint.com/execute_sql_online.php