none
numerare righe con valori doppi RRS feed

  • Domanda

  • Buongiorno a tutti!

    Ho la necessità di creare una colonna con un contatore incrementale che si azzeri al cambio di chiave. (quindi numerare i valori duplicati). Per spiegarmi meglio vi faccio un esempio:

    Tabella origine:
    ID codart
    1 100
    2 100
    3 101
    4 102
    5 100

    Quello che vorrei è:
    ID codart contatore
    1 100 1
    2 100 2
    3 101 1
    4 102 1
    5 100 3

    come posso ottenere la colonna "contatore"?

    Vi ringrazio in anticipo per l'aiuto!

    giovedì 29 agosto 2013 12:45

Risposte

  • Ciao Piccolanomade,

    la soluzione al tuo problema è rappresentata da una query del seguente tipo:

    SELECT Id, CodArt, ROW_NUMBER() OVER(PARTITION BY CodArt Order by Id) AS Occorrenza 
    FROM tabella

    In sostanza, oltre alle due colonne già presenti, con la funzione ROW_NUMBER ne creiamo una terza, che esponga il numero di riga incrementale a parità di codice articolo (OVER PARTITION BY CodArt).

    Spero di esserti stato di aiuto


    Emiliano Musso

    • Contrassegnato come risposta Piccolanomade giovedì 29 agosto 2013 13:36
    giovedì 29 agosto 2013 12:58

Tutte le risposte

  • Ciao Piccolanomade,

    la soluzione al tuo problema è rappresentata da una query del seguente tipo:

    SELECT Id, CodArt, ROW_NUMBER() OVER(PARTITION BY CodArt Order by Id) AS Occorrenza 
    FROM tabella

    In sostanza, oltre alle due colonne già presenti, con la funzione ROW_NUMBER ne creiamo una terza, che esponga il numero di riga incrementale a parità di codice articolo (OVER PARTITION BY CodArt).

    Spero di esserti stato di aiuto


    Emiliano Musso

    • Contrassegnato come risposta Piccolanomade giovedì 29 agosto 2013 13:36
    giovedì 29 agosto 2013 12:58
  • Perfettamente funzionante!

    Proprio quello che mi serviva!

    Grazie infinite per la celere risposta Emiliano!

    giovedì 29 agosto 2013 13:36