Sonuç kümesi, birkaç ekleme ve birleşim ile bir sql sorgusundan türetilir. Sql sorgusu zaten Tarih ve oyundaki satırları gruplandırır. Tarihe göre bölümlere ayrılmış bir oyundaki deneme sayısını tanımlamak için bir sütuna ihtiyacım var.PostgreSQL pencere işlevi: row_number() over (col2 tarafından bölüm col siparişi)
Username Game ID Date
johndoe1 Game_1 100 7/22/14 1:52 AM
johndoe1 Game_1 100 7/22/14 1:52 AM
johndoe1 Game_1 100 7/22/14 1:52 AM
johndoe1 Game_1 100 7/22/14 1:52 AM
johndoe1 Game_1 121 7/22/14 1:56 AM
johndoe1 Game_1 121 7/22/14 1:56 AM
johndoe1 Game_1 121 7/22/14 1:56 AM
johndoe1 Game_1 121 7/22/14 1:56 AM
johndoe1 Game_1 121 7/22/14 1:56 AM
johndoe1 Game_1 130 7/22/14 1:59 AM
johndoe1 Game_1 130 7/22/14 1:59 AM
johndoe1 Game_1 130 7/22/14 1:59 AM
johndoe1 Game_1 130 7/22/14 1:59 AM
johndoe1 Game_1 130 7/22/14 1:59 AM
johndoe1 Game_1 200 7/22/14 2:54 AM
johndoe1 Game_1 200 7/22/14 2:54 AM
johndoe1 Game_1 200 7/22/14 2:54 AM
johndoe1 Game_1 200 7/22/14 2:54 AM
johndoe1 Game_1 210 7/22/14 3:54 AM
johndoe1 Game_1 210 7/22/14 3:54 AM
johndoe1 Game_1 210 7/22/14 3:54 AM
johndoe1 Game_1 210 7/22/14 3:54 AM
Ben tarih ve oyun anlayışıyla bu oyunun örneklerinin sayısını istedikleri için bölüm içinde satırları ama tamamen doğru değil sıralar aşağıdaki sql sorgu ettik. Bu durumda johndoe1, zaman damgaları tarafından beş kez bölüştürülmüş Game_1'de teşebbüs etmiştir.
Bu sorgu döndürür bir işaretçiler büyük yardımı olacağını
select *
, row_number() over (partition by ct."date" order by ct."date") as "Attempts"
from csv_temp as ct
Username Game ID Date Attempts (Desired Attempts col.)
johndoe1 Game_1 100 7/22/14 1:52 AM 1 1
johndoe1 Game_1 100 7/22/14 1:52 AM 2 1
johndoe1 Game_1 100 7/22/14 1:52 AM 3 1
johndoe1 Game_1 100 7/22/14 1:52 AM 4 1
johndoe1 Game_1 121 7/22/14 1:56 AM 1 2
johndoe1 Game_1 121 7/22/14 1:56 AM 2 2
johndoe1 Game_1 121 7/22/14 1:56 AM 3 2
johndoe1 Game_1 121 7/22/14 1:56 AM 4 2
johndoe1 Game_1 121 7/22/14 1:56 AM 5 2
johndoe1 Game_1 130 7/22/14 1:59 AM 1 3
johndoe1 Game_1 130 7/22/14 1:59 AM 2 3
johndoe1 Game_1 130 7/22/14 1:59 AM 3 3
johndoe1 Game_1 130 7/22/14 1:59 AM 4 3
johndoe1 Game_1 130 7/22/14 1:59 AM 5 3
johndoe1 Game_1 200 7/22/14 2:54 AM 1 4
johndoe1 Game_1 200 7/22/14 2:54 AM 2 4
johndoe1 Game_1 200 7/22/14 2:54 AM 3 4
johndoe1 Game_1 200 7/22/14 2:54 AM 4 4
johndoe1 Game_1 210 7/22/14 3:54 AM 1 5
johndoe1 Game_1 210 7/22/14 3:54 AM 2 5
johndoe1 Game_1 210 7/22/14 3:54 AM 3 5
johndoe1 Game_1 210 7/22/14 3:54 AM 4 5
aşağıda sonuç kümesi. a_horse_with_no_name belirtildiği gibi
Belki bu yardımcı olacaktır http://java.dzone.com/articles/difference-between-rownumber –
İstenilen sonuçlara bakıldığında, bir (İstenen Girişler col.) Grubundaki satırlar arasındaki tek fark, "Denemeler" sütunu. Belki sadece 'Kullanıcı Adı, Oyun, Kimlik' ile gruplandırabilir, denemelerin sayısını elde etmek için 'count (1) 'i ekleyebilir ve' (İstenen Girişler Col.) 'Yi almak için' row_number() 'yi ekleyebilirsiniz. – Jakub