MYSQL

2016-10-07 8 views
-1

plz에있는 테이블의 같은 행에있는 세 개의 연속 된 값의 합계를 선택하면 SQL 쿼리를 통해 결과를 얻을 수있는 테이블을 참조하십시오.MYSQL

id value 
1 10 
2 15 
3 30 
4 10 
5 11 
6 12 

원하는 출력 : 3에 의해

id value 
1 55 
2 33 

http://sqlfiddle.com/#!9/21cbc8

+1

이 컨텍스트에서는 'id'가 무의미합니다. – Strawberry

+0

예 실제로 실제 테이블에는 ID 열이 없습니다. 우리가 질의를 실행할 때 3의 그룹에서 첫 번째와 마지막 값을 얻을 수 있습니까? –

답변

1

나눈다 ID, (a sum)와 최대 그것은 원형 그룹을 : 가변으로

SELECT 
    ceiling(id/3) AS NewID, 
    sum(Value)  AS SumValue 
FROM MyTable 
GROUP BY ceiling(id/3) 

:

SET @GroupVar = 3; -- Set this number to whatever you want to group by 

SELECT 
    ceiling(id/@GroupVar) AS NewID, 
    sum(Value)  AS SumValue 
FROM MyTable 
GROUP BY ceiling(id/@GroupVar); 
+0

http://sqlfiddle.com/#!9/21cbc8/5 – CGritton

+1

매개 변수를 3으로 수정하고 싶지 않다고 가정합니다. 그 자리에 varriable을 원한다면 시간이 변할 수있는 변수를 가질 수 있습니다. –

+0

정말 고마워요. 한 가지 더 궁금한 점이 있습니다. 그것은 그룹의 첫 번째 요소와 마지막 요소를 가져올 수 있습니까? 간단하게 열 이름으로 선택하여 그룹의 최상위 요소를 얻을 수 있지만 마지막 요소를 얻는 방법 예를 들어 우리가 가진 첫 번째 그룹 10, 15 및 30 이제 어떻게 쿼리로 10 개와 30 개를 얻을 수 있습니까? –