,关于分组的一个很基础的有关问题
求助,关于分组的一个很基础的问题
我现在有一个表,字段是从A到Z 24个字段,A是主键,从1自增长,现在我要得到N字段分组后的所有字段数据,我想到的查询语句是在每个字段都加上聚合函数 大致是这样的:
我觉得这样写有问题
1.我只能得到一组后最大或最小的数据,该怎么得到一组中间的数据。
2.每个字段都要加聚合函数好像不是很高,有没有优化方法?
------解决方案--------------------
楼主,先假设就有A B N三个字段,按N分组,你需要得到怎样的结果集?加点测试数据说明下。
------解决方案--------------------
我现在有一个表,字段是从A到Z 24个字段,A是主键,从1自增长,现在我要得到N字段分组后的所有字段数据,我想到的查询语句是在每个字段都加上聚合函数 大致是这样的:
- SQL code
SELECT MIN(A),MIN(B),SUM(C)...MIN(Z) FROM 表 group by N
我觉得这样写有问题
1.我只能得到一组后最大或最小的数据,该怎么得到一组中间的数据。
2.每个字段都要加聚合函数好像不是很高,有没有优化方法?
------解决方案--------------------
楼主,先假设就有A B N三个字段,按N分组,你需要得到怎样的结果集?加点测试数据说明下。
------解决方案--------------------
- SQL code
select N,stuff((select ','+ltrim(A) from tb where N = t.N for xml path('')),1,1,'') as A, stuff((select ','+ltrim(A) from tb where N = t.N for xml path('')),1,1,'') as B from tb t group by N
------解决方案--------------------
- SQL code
SELECT A,...,Z FROM ( select ROW_NUMBER()OVER(PARTITION BY N ORDER BY GETDATE()),A,B,C,...,Z FROM 表) A