我想用SQL对行进行分组,我的结果集如下
名称大小日期
数据1 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
我想像这样分组结果集:
data1 
  123 12/03/2009 
  124 15/09/2009 
data2 
  333 02/09/2010 
  323 02/11/2010 
  673 02/09/2014 
  444 05/01/2010
是否可以使用纯SQL执行此操作?
干杯.
GROUP BY WITH ROLLUP(你不是真正的分组 - 所以你会GROUP BY每一栏都行动)
http://dev.mysql.com/doc/refman/5.0/en/group-by-modifiers.html
http://chiragrdarji.wordpress.com/2008/09/09/group-by-cube-rollup-and-sql-server-2005/
http://databases.about.com/od/sql/l/aacuberollup.htm
http://www.adp-gmbh.ch/ora/sql/group_by/group_by_rollup.html
http://msdn.microsoft.com/en-us/library/bb522495.aspx
基于列文的代码:
DECLARE @Table TABLE (
     name varchar(32)
    ,Size integer
    ,Date datetime
    )
INSERT  INTO @Table
VALUES  ('data1', 123, GETDATE())
INSERT  INTO @Table
VALUES  ('data1', 124, GETDATE())
INSERT  INTO @Table
VALUES  ('data2', 333, GETDATE())
INSERT  INTO @Table
VALUES  ('data2', 323, GETDATE())
INSERT  INTO @Table
VALUES  ('data2', 673, GETDATE())
INSERT  INTO @Table
VALUES  ('data2', 444, GETDATE())
SELECT  *
FROM    (
         SELECT *
         FROM   @Table
         GROUP BY NAME
               ,size
               ,date
                WITH ROLLUP
        ) AS X
WHERE   NAME IS NOT NULL
        AND (
             (
              Size IS NOT NULL
              AND Date IS NOT NULL
             )
             OR (
                 Size IS NULL
                 AND date IS NULL
                )
            )
ORDER BY NAME
       ,size
       ,date