شرح - order by sql
سكل: السجلات الإجمالية ضمن مجموعة مع مراعاة ترتيب الصفوف (1)
select a,sum(b)
from (select *
,row_number () over (order by id) as rn
,row_number () over (partition by a order by id) as rnp
from t
) t
group by a,rn - rnp
order by min(id)
;
مز
أنا لا أعول على إد لتكون مستمرة
لدي جدول الهيكل التالي
| id | a | b |
| 1 | 1 | 1 |
| 2 | 1 | 5 |
| 3 | 2 | 2 |
| 4 | 2 | 3 |
| 5 | 2 | 5 |
| 6 | 1 | 3 |
| 7 | 1 | 7 |
| 8 | 3 | 1 |
| 9 | 2 | 0 |
| 10 | 4 | 8 |
وتحتاج إلى حساب المجموع في العمود "b" داخل كل مجموعة في العمود "a" ولكن مع الأخذ بعين الاعتبار ترتيب الصفوف، أي في البداية يجب أن نضيف 1 + 5
ل a == 1
( id
s 1 و 2 )، ثم سنضيف 2 + 3 + 5
ل a = 2
( id
s 3، 4، 5) وهلم جرا.
وهكذا، في النتيجة أحتاج أن يكون الجدول مثل هذا
| a | sum(b) |
| 1 | 6 |
| 2 | 10 |
| 1 | 10 |
| 3 | 1 |
| 2 | 0 |
| 4 | 8 |
الرجاء المساعدة في كتابة استعلام سكل للقيام بذلك.