none
colonna con partizionamento RRS feed

  • Domanda

  • ciao,
    ho una quetry che ritorna due colonne (nome,data)

    esempio:

    Marco 2010-02-11
    Roberto 2010-02-11
    Marco 2010-02-10
    Roberto 2010-02-10
    Marco 2010-02-09
    Marco 2010-02-05
    Marco 2010-01-29

    ho bisogno di aggiungere una terza colonna che mi ritorni il numero di partizionamento per esempio che assegni il valore 1 a tutte le righe chiamate roberto e 2a tutte le righe che contengono marco. o viceversa.

    grazie,

    marco bosco
    giovedì 11 febbraio 2010 15:03

Risposte

  • Marco 2010-02-11
    Roberto 2010-02-11
    Marco 2010-02-10
    Roberto 2010-02-10
    Marco 2010-02-09
    Marco 2010-02-05
    Marco 2010-01-29

    ho bisogno di aggiungere una terza colonna che mi ritorni il numero di partizionamento per esempio che assegni il valore 1 a tutte le righe chiamate roberto e 2a tutte le righe che contengono marco. o viceversa.

    Ciao Marco,

    Se utilizzi SQL Server 2005 o successivo puoi ricorrere alla funzione di ranking RANK():

    USE tempdb;
    
    CREATE TABLE dbo.Students(
    StudentID int NOT NULL IDENTITY PRIMARY KEY,
    FirstName varchar(10) NOT NULL,
    GraduationDate date NOT NULL
    );
    
    INSERT dbo.Students VALUES
          ('Marco', '2010-02-11')
        , ('Roberto', '2010-02-11')
        , ('Marco', '2010-02-10')
        , ('Roberto', '2010-02-10')
        , ('Marco', '2010-02-09')
        , ('Marco', '2010-02-05')
        , ('Marco', '2010-01-29');
        
    SELECT
          FirstName
        , GraduationDate
        , DENSE_RANK() OVER(ORDER BY FirstName) AS 'Rank'
    FROM dbo.Students;
    
    /* Output:
    
    FirstName  GraduationDate Rank
    ---------- -------------- --------------------
    Marco      2010-02-11     1
    Marco      2010-02-10     1
    Marco      2010-02-09     1
    Marco      2010-02-05     1
    Marco      2010-01-29     1
    Roberto    2010-02-10     2
    Roberto    2010-02-11     2
    
    (7 row(s) affected)
    
    */
    
    DROP TABLE dbo.Students;

    Ciao!

    Lorenzo Benaglia
    Microsoft MVP - SQL Server
    http://blogs.dotnethell.it/lorenzo
    http://social.microsoft.com/Forums/it-IT/sqlserverit
    • Contrassegnato come risposta Anca Popa giovedì 13 gennaio 2011 20:57
    giovedì 11 febbraio 2010 20:48
    Moderatore