Visualizzazione risultati 1 fino 4 di 4

Discussione: Calcolo media totale

  1. #1
    gians0202 non è connesso Neofita
    Data registrazione
    15-03-2021
    Messaggi
    2

    Predefinito Calcolo media totale

    Buonasera sto provando ad eseguire una query che mi permette di visualizzare la media degli stipendi di dipendenti che andranno in pensione l'anno successivo a cui bisogna affiancare i relativi settori


    SELECT Avg(Dipendenti.Stipendio) AS MediaDiStipendio,
    Dipendenti.[Anno pensionamento],
    Dipendenti.Mansione,
    Count(Dipendenti.Mansione) AS ConteggioDiMansione
    FROM Dipendenti
    GROUP BY Dipendenti.[Anno pensionamento], Dipendenti.Mansione
    HAVING (((Dipendenti.[Anno pensionamento])=2022));
    Tramite questa quary riesco ad ottenere la media per ogni settore, però a me servirebbe la media totale con elencati i relativi settori coinvolti
    Grazie mille in anticipo per l'aiuto

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    A occhio mi sembra che tu stia usando un [i]HAVING[i] di troppo. Sarebbe più semplice filtrare prima di aggregare:
    Codice:
    SELECT Avg(Dipendenti.Stipendio) AS MediaDiStipendio,
    Dipendenti.[Anno pensionamento],
    Dipendenti.Mansione,
    Count(Dipendenti.Mansione) AS ConteggioDiMansione
    FROM Dipendenti
    WHERE Dipendenti.[Anno pensionamento] = 2022
    GROUP BY Dipendenti.[Anno pensionamento], Dipendenti.Mansione
    Ciò detto, se non vuoi i risultati raggruppati per mansione, non raggrupparli:
    Codice:
    SELECT Avg(Dipendenti.Stipendio) AS MediaDiStipendio,
    Dipendenti.[Anno pensionamento],
    Dipendenti.Mansione
    FROM Dipendenti
    WHERE Dipendenti.[Anno pensionamento] = 2022

    I suggerimenti che do più spesso:


  3. #3
    gians0202 non è connesso Neofita
    Data registrazione
    15-03-2021
    Messaggi
    2

    Predefinito

    Innanzitutto ti ringrazio per la risposta così celere
    Ho bisogno per forza di stampare di fianco alla media totale l'elenco delle mansioni coinvolte nella pensione nel 2022 ed il raggruppamento mi sembrava l'unica possibilità solo che come accennato prima calcola la media di ogni settore

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Calcolando la media totale, le mansioni coinvolte sono per definizione tutte, a meno che non sussista la possibilità che alcune mansioni non siano mai svolte da persone che vanno in pensione in un determinato anno. In ogni caso, con la seconda query ottieni l'elenco delle mansioni in una delle colonne, e puoi leggerle tramite un ciclo.

    Probabilmente è anche possibile ottenere la media totale e una stringa contenente l'elenco delle mansioni (non l'elenco stesso che, essendo un insieme, non è restituibile in una singola cella) usando strumenti come STRING_AGG. Non è una soluzione particolarmente interessante, appunto perché concatena tutte le mansioni in un'unica stringa: se hai poi bisogno di elaborarle in qualche modo devi usare explode, a quel punto tanto vale leggerle da un ciclo.

    I suggerimenti che do più spesso:


Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •