sql >> Database >  >> RDS >> Sqlserver

Hoe rijen met dezelfde waarde in sql te groeperen?

Probeer dit

DECLARE @temp TABLE(col1 varchar(20),col2 int, col3 varchar(20))
insert into @temp values ('data1', 123 , '12/03/2009'),('data1', 124 , '15/09/2009'),
                        ('data2 ',333  ,'02/09/2010'),('data2 ',323 , '02/11/2010'),
                        ('data2 ',673 , '02/09/2014'),('data2',444 , '05/01/2010')

SELECT 
    (CASE rno WHEN 1 THEN col1 ELSE '' END )AS col1,
    col2,
    col3
FROM
(                   
    SELECT 
        ROW_NUMBER() OVER(PARTITION BY Col1 ORDER BY col2) AS rno,
        col1,col2,col3
    FROM @temp
) As temp

Dit geeft de volgende output

col1    col2    col3
---------------------------------
data1   123 12/03/2009
        124 15/09/2009
data2   323 02/11/2010
        333 02/09/2010
        444 05/01/2010
        673 02/09/2014

PARTITION BY groepeert de gegevens met de gegeven kolomnaam, en een rijnummer wordt in die groep gegenereerd op basis van de order by .

Hier is de SQL Fiddle

Ik heb nog een viool gemaakt op basis van het verstrekte schema.fiddle2



  1. kan geen externe sleutel in mySQL laten vallen

  2. Hoe Master/Slave doctrine2 configuraties te gebruiken vanuit Symfony2 Console commando's

  3. Hoe maak je een nieuw veld in een tabel wanneer de gebruiker op een link klikt?

  4. Hoe maak je gematerialiseerde weergaven in SQL Server?