2012-07-31 2 views
0

데이터 집합의 총계에서 각 정렬 된 행의 값을 뺍니다. 총합은 데이터 세트의 모든보기의 합계 인 2,014,217입니다. 여기에 내가 무엇을 찾고 데이터가 아래에 있고 : 총은 1,777,914가 그 다음 총 1,777,914 마이너스 1768654 등이다 9260이다 총계 마이너스 236,303 될 것입니다감쇠 곡선을 만들기 위해 총계에서 감산을위한 쿼리를 작성하려면 어떻게합니까?

viewing   | views | total 
------------------------------------ 
a0100    | 236303 | 1777914 
a0100|a0101  | 9260 | 1768654 
a0100|a0101|a0102 | 26670 | 1741984 

.

누군가 도움을 줄 수 있습니까?

감사합니다,

답변

0

당신은 이전 행의 값을 추적하는 변수를 사용할 수 있습니다.

SELECT  @vw:=CONCAT(@vw, '|', a.viewing) AS viewing 
      a.views, 
      CASE @total 
       WHEN 0 THEN @total:=b.viewsum - a.views 
       ELSE  @total:[email protected] - a.views 
      END AS total 
FROM  tbl a 
CROSS JOIN (SELECT SUM(views) AS viewsum FROM tbl) b 
CROSS JOIN (SELECT @vw:='') vw_init 
CROSS JOIN (SELECT @total:=0) total_init 
+0

감사 :

는이 솔루션을보십시오! 그것은 효과가 있었다. – Ben

관련 문제