Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107

    [MySql] query di raggruppamento

    Salve a tutti!

    Da una query ricavo, in una tabella tipo anagrafiche, il numero di impiegati per ogni azienda

    La query è simile a questa

    codice:
    SELECT count(tb_inca.l_cod),tb_inca.l_cod
    FROM tb_inca 
    group by tb_inca.l_cod
    L_COD è un ID di azienda. In pratica impiegati aventi stesso L_COD sono della stessa azienda.

    Il risultato è simile a questo (CONTEGGIO - L_COD)
    codice:
    374 | 1639
    180 | 1928
    [...]
    Ora, sulla base di questo raggruppamento vorrei raggruppare ulteriormente per
    -- n° incaricati 1-5
    -- n° incaricati 6-10
    -- n° incaricati 11-oltre


    In pratica lo scopo è vedere per ogni L_COD (azienda) il range di impiegati
    Guybrush Threepwood

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    SELECT count( l_cod ) AS numero, l_cod, if( count( l_cod ) <6, '1-5', if( count( l_cod ) <11, '6-10', '11+' ) ) AS gruppo
    FROM tb_inca
    GROUP BY l_cod

    (oppure GROUP BY gruppo.... non ho capito bene cosa vuoi ottenere)

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Mi correggo.. GROUP BY gruppo non può funzionare.
    Vedi se ti va bene nell'altro modo, se no bisogna riguardarci

  4. #4
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    L'idea è quella, ci siamo quasi

    In reltà la query corretta inizialmente è di raggruppamento per settore

    codice:
    SELECT count(SETTORE) as CONTEGGIO,SETTORE
    FROM 
    tb_inca 
    group by SETTORE
    In questo modo ho il conteggio di impiegati per settore.

    Su questa base ora dovrei aggiungere un altro pezzo (che sarà un giro di IF immagino) per conteggiare il numero di incaricati (sempre per settore)

    [1-5] incaricati
    [6-10] incaricati
    [11-20] incaricati

    faccio il conteggio così

    SELECT count(SETTORE) as CONTEGGIO,SETTORE, if (count(L_COD)<5,'ok','ko)) [...]

    non funzia perchè il count(L_COD) risulta essere il conteggio globale...
    Guybrush Threepwood

  5. #5
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    Uno spezzone di ciò che risulterebbe :


    codice:
    |     25 |        15 |                   |                   | minore di 50
    |     11 |        16 |                   |                   | minore di 50
    |      9 |        17 |                   | minore di 10      | minore di 50
    |     69 |        19 |                   |                   |
    |   6229 |         2 |                   |                   |
    |     57 |        20 |                   |                   |
    |      3 |        21 | minore di 5       | minore di 10      | minore di 50
    questo con
    codice:
    SELECT count(SETTORE) as numero,d_settore,if (count(tb_inca.l_cod)<5,'minore di 5',''),if (count(tb_inca.l_cod)<10,'minore di 10',''),if (count(tb_inca.l_cod)<50,'minore di 50','')
    Guybrush Threepwood

  6. #6
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    Originariamente inviato da luca200
    (non ho capito bene cosa vuoi ottenere)
    L'obiettivo è avere il numero di classi di impiegati (1-5, 5-10, 11,20) divisi per settore.

    Esempio.
    SETTORE 1 :
    500 impiegati
    30 aziende
    da 1 a 5 incaricati : 10 aziende
    da 6 a 10 incaricati : 20 aziende
    oltre 11 incaricati : 10 aziende


    SETTORE 2 :
    1500 impiegati
    76 aziende
    da 1 a 5 incaricati : 34 aziende
    da 6 a 10 incaricati : 22 aziende
    oltre 11 incaricati : 19 aziende
    Guybrush Threepwood

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.