bir tablo şöyle sahiptir: Bu özel (örneğin bu sonucu isteyentoplaması Kolon (SQL) Bölüm 1
object_id | vote
1 | 2
1 | -1
1 | 5
2 | 3
2 | 1
3 | 4
3 | -2
, 1 object_ids ve 2, bir grubun bir parçası, başka bir yerde tanımlandığı gibidir burada
object_id | normalized_score
1 | 6/10
2 | 4/10
[eklenen 15:05] 10 oy toplamı içindir:., ve ben toplamı her zaman 1. object_id 3 kullanılmayan bir grubun parçası olduğu = böylece) normalized_score arıyorum object_id in (1,2). Başka bir mantık kümesi var, (1,2), sadece en temiz soruyu sormaya çalışıyordum, bu yüzden insanlar o kısım hakkında endişelenmek zorunda değiller.
[eklendi 3:10] Açıklamalarda belirtildiği gibi, nesnelerden birinin puanı 0'ın altındaysa, bir sorun ortaya çıkar. İşte kural, "Eğer herhangi bir outcome_id skoru -x ise, VE set için minimum skor, minimum skoru sıfırlamak için tüm skorlara ADD x" denir. Bunu SQL'in dışında kendi zamanımda yapabilirim - bu yüzden birileri sadece SQL'de ele almak için birer tane varsa, bu bir bonus.
Kendim birleştirme yaparsam, toplamı alabilirim. Normalleştirilmiş toplamı nasıl alacağımı anlayamıyorum. İdeal olarak bu hem MySQL 5.x hem de Sqlite3'te çalışacaktır. Aksi takdirde, bunu iki ayrı sorguyla yapabilirim ve sadece işi post-processing'de yapabilirim.
"10" buradaki şeylere nereden geliyor? –
Eğer oyların 10'un üzerinde olması gerekiyorsa o zaman olumsuz oylara nasıl izin verebilirsiniz? –
Üzgünüz 10, object_id oyununda (1,2) bulunan oyların toplamıdır. –