MYSQL

2016-10-07 4 views
-1

plzのテーブルの同じ行の3つの連続する値の合計を選択すると、そのような結果を得るために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、(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を得る方法 –