Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara mengelompokkan baris dengan nilai yang sama di sql?

Coba ini

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

Ini memberikan output berikut

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 mengelompokkan data dengan nama kolom yang diberikan, dan nomor baris dibuat dalam grup tersebut berdasarkan order by .

Berikut adalah SQL Fiddle

Saya telah membuat biola lain berdasarkan skema yang disediakan .fiddle2



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan bootstrap modalpopup di ASP.NET

  2. Ekspresi Reguler di server SQL Server?

  3. Periksa perubahan di semua kolom lain berdasarkan kesamaan satu kolom

  4. Cara menonaktifkan semua Batasan Periksa di Database SQL Server - Tutorial SQL Server / TSQL Bagian 87

  5. Berapa banyak karakter dalam varchar (maks)?