2016-04-12 35 views
1

Buradaki ilk sorum bu yüzden en iyi uygulamaları izlemiyorsam lütfen bana bildirin! ,Değerleri kovalara nasıl paylaştırırım ve bir değer içeren kepçe hangisi olduğunu nasıl bulabilirim?

+---------+------------+--+ 
| Version | Time_Taken | | 
| 1  | 10   | | 
| 2  | 15   | | 
| 3  | 20   | | 
+---------+------------+--+ 

ve

+--------+--------------+--+ 
| Bucket | Time_Allowed | | 
+--------+--------------+--+ 
|  1 |   5 | | 
|  2 |   10 | | 
|  3 |   10 | | 
|  4 |   10 | | 
|  5 |   10 | | 
+--------+--------------+--+ 

Ben Kovalar hangi benim sürümü tamamlanmıştır versiyonları sırayla tamamlanması gerekir görmek mümkün olmak istiyorum.

İki tablo var gerektiği gibi kovalar. Daha fazla eğlenceli hale getirmek için, kovalar, yalnızca'un yalnızca bir süreye sahip olduklarında birden fazla sürüm tarafından kullanılabilir. Örneğin, Sürüm 1 için (time_taken = 10), örneğin, tüm Kova 1'i (time_allowed = 5) ve kepçenin 2 yarısını kaldıracağımı biliyorum. Şimdi kova 2'de 5 tane kaldı ve bu kepçeyi Sürüm 2 ile doldurmaya başlayabilirim.

Şu anda postgeler kullanıyorum ve hala ipleri öğreniyorum, bu yüzden bir yapının nasıl oluşturulacağına dair genel bir tavsiye ile gerçekten yapabilirim. burada yardımcı olur!

Bu belirsiz ise özür dileriz!

+2

x between timeFrom and timeTo beklenen çıkışı eklemeyi unutmayın kullanarak katılabilir. http://stackoverflow.com/help/how-to-ask –

cevap

0

Standart SQL'in Windowed Aggregate Functions'u kullanarak kümülatif toplamları hesaplamak istediğiniz gibi görünüyor. tablo # 2'deki her bir bölüm için örtülü zaman aralığı sorgu döndürür ardından:

select *, 
    sum(Time_Allowed) 
    over (order by Bucket 
     rows unbounded preceding) - Time_Allowed AS timeFrom, 
    sum(Time_Allowed) 
    over (order by Bucket 
     rows unbounded preceding) AS timeTo 
from tab2 

Sen tablo # 1 Time_Taken için aynı şeyi ve daha sonra