Una query per Raggruppare?

di il
7 risposte

Una query per Raggruppare?

Ciao, ho una tabella del genere:

idid_nominativoDataPresenza 
3282024-10-10
2252024-10-02
1252024-10-01
4282024-10-01
5262024-10-01

E vorrei mostrare le date in cui e' successo qualcosa, ovvero il 10, il 02 e il 01 di ottobre. Cioe' la stessa data (01/10) non dovrei ripeterla 3 volte ma mostrarla una volta sola. 

Come faccio una query del genere?

7 Risposte

  • Re: Una query per Raggruppare?

    L'immagine non si vede.

    Funzionalita' STANDARD del comando SQL:   “SELECT …”

    https://mariadb.com/kb/en/select/

  • Re: Una query per Raggruppare?

    26/10/2024 - migliorabile ha scritto:


    L'immagine non si vede.

    Funzionalita' STANDARD del comando SQL:   “SELECT …”

    https://mariadb.com/kb/en/select/

    Ho scritto degli esempi a mano aggiornando il mio post originale.

    Ovvio che pensavo al SELECT … ma sinceramente non ho capito come raggruppare… :(

  • Re: Una query per Raggruppare?

    26/10/2024 - ricmanx ha scritto:


    sinceramente non ho capito come raggruppare

    Non devi raggruppare, ma prendere i valori distinti. Pertanto:

    SELECT DISTINCT DataPresenza
    FROM Tabella
  • Re: Una query per Raggruppare?

    Con quei dati non puoi raggruppare per data.

    Puoi raggruppare per idnome e max(id)

    Per avere

    25.   02/10/24

    26.   01/10/24

    28.   10/10/24

  • Re: Una query per Raggruppare?

    26/10/2024 - Sgrubak ha scritto:


    Non devi raggruppare, ma prendere i valori distinti. Pertanto:

    SELECT DISTINCT DataPresenza
    FROM Tabella

    Ok, in effetti vedo un raggruppamento per date. 

    Non avevo detto il “poi”… Poi la data sarà scritta in html sottoforma di link (a href) e, una volta cliccata, mostrerò gli utenti presenti quel giorno… 

    Potrebbe essere un problema inviare una data da un href e poi prenderla col $_GET per eseguire l'altra query?  

  • Re: Una query per Raggruppare?

    26/10/2024 - sihsandrea ha scritto:


    Con quei dati non puoi raggruppare per data.

    Puoi raggruppare per idnome e max(id)

    Per avere

    25.   02/10/24

    26.   01/10/24

    28.   10/10/24

    Chiedo scusa per l'ignoranza…. Non ho capito… 

  • Re: Una query per Raggruppare?

    Un elenco di lavori svolti puoi raggrupparlo:

    Tabella lavori svolti

    1. Taglio prato
    2. Potatura alberi
    3. Tagio prato
    4. Spargimento concime
    5. Taglio prato

    Query raggruppamento per mansioni

    Taglio prato

    Potatura alberi

    Spargimento concime

    In pratica puoi raggruppare record che hanno campi uguali.

    La tua tabella (id; idnominativo; data;)

    La puoi raggruppare per data solo se pippo è registrato da 2 a n volte per la data del 01/01/24 il che non ha senso.

    Rileggendo ho capito che per raggruppamento intendi filtrare…

    Beh, raggruppare significa ridurre i duplicati nella risposta di una query, filtrare sifnifica dare dei criteri di visualizzazione.

    Nel tuo caso select * form tuatabella

     where data=[tuocriterio]

    26/10/2024 - ricmanx ha scritto:


    E vorrei mostrare le date in cui e' successo qualcosa, ovvero il 10, il 02 e il 01 di ottobre. Cioe' la stessa data (01/10) non dovrei ripeterla 3 volte ma mostrarla una volta sola

    Da dove si evince che è successo qualcosa?

    Magari la tabella registra eventi così organizzati:

    Idevento.   Idnominativo.   Dataevento. 

    In questo caso non hai abbastanza elementi per usare una data ma puoi selezionare l'ultima registarione per nominativo

    Cioè max(id) che è l'ultimo evento registrato e idnominativo

    Quindi avrai in risposta solo i nominativi senza ripetizione e la data dell'evento

Devi accedere o registrarti per scrivere nel forum
7 risposte