当前位置: 代码迷 >> Sql Server >> 相邻记录汇总有关问题
  详细解决方案

相邻记录汇总有关问题

热度:37   发布时间:2016-04-24 10:49:06.0
相邻记录汇总问题
MS SQL查询,想实现如下的汇总效果,求指点,求思路

------解决方案--------------------

WITH a1 (pluname,qty) AS 
(
SELECT '香皂',1 UNION all
SELECT '香皂',2 UNION ALL
SELECT '洗手液',1 UNION all
SELECT '香皂',1 UNION all
SELECT '香皂',1 UNION ALL
SELECT '香皂',2
)
,a2 AS
(
SELECT *,ROW_NUMBER() OVER(ORDER BY @@SERVERNAME) re
FROM a1
)
,a3 AS
(
SELECT *,re-ROW_NUMBER() OVER(PARTITION BY pluname ORDER BY re) re2
FROM a2
)
SELECT pluname,SUM(qty) qty
FROM a3
GROUP BY pluname,re2
ORDER BY MIN(re)
  相关解决方案