شرح - 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    |

الرجاء المساعدة في كتابة استعلام سكل للقيام بذلك.





pyspark-sql