Sitemde bir Sıralama var - 2 Tablolar: KULLANICILAR ve CEVAP.MySQL - Bir Sıralamadaki yinelenen kullanıcıları nasıl ortadan kaldırırım?
CEVAPLAR TABLO geçerli:
> ======================
> QUIZID ----- USERID ---- TOTALPOINTS ---- TYPE1 -- TYPE2 - TOTALTIME
> 100 ------ 22 ------- 100 ----- 30 ---- 70 ---- 300
> 100 -------- 45 ------- 80 ------ 40 -----40 ----- 280
> 101 --------- 45 ------- 60 ------------30 -----30 ------200
TİP1 ve TİP2 ("Satış" ve "Pazarlama" gibi) farklı soru kategorilerde acumulated noktalarıdır - ve TİP1 WIN bir DRAW, en çok puan var EĞER .. TİP 2'de (tam tablonun 11 türü vardır) ..
BURAYA: Kullanıcı 22 Puanınız 100 Puan - ve Kullanıcı 45 140 Puan.
Her kullanıcı için 1'den fazla cevap yapabilirsiniz - çünkü çok sayıda sorunuz vardı.
MY SORUN:
KULLANICI TABLO geçerli:
========================
USERID ------ NAME
22 ------ JOHN
22 -------- JOHN
22 -------- JOHN
45 -------- MARK
=========================
Bazı kullanıcılar kullanıcı masaya çoğaltılamaz edildi.
Ben sıralamasını oluşturmak için bu SEÇ kullanıyorum (TOP 50):
USERID - NAME - TOTALPOINTS - TYPE1 - TYPE2 - TOTALTIME
22 ---- JOHN - 300 ----- 90 ----- 210 -- 900
45 ---- MARK --- 140 ----- 70 ----- 70 ---- 480
USERID 22 3x geçerli:
SELECT users.userid,
users.name,
Sum(totalpoints),
Sum(type1),
Sum(type2),
Min(totaltime)
FROM answers
INNER JOIN users
ON users.userid = answers.userid
WHERE totalpoints > 0
GROUP BY users.userid
ORDER BY Sum(totalpoints) DESC,
Sum(type1) DESC,
Sum(type2) DESC,
Min(totaltime)
LIMIT 50
Ama ..
Ben folow sonucu var daha fazla puan çünkü KULLANICI TABLOSU 3x ..
Bunu düzeltmek için herhangi bir yolu var - fazladan silmeden kullanıcı masasından mı?
(I Sıralaması hakkın var kullanıcıları silebilir .. ama yarın herkes tekrar çoğaltılamaz, sorun dönecektir çünkü .. sorunu gidermek yoksa)
tks !!
- DUPLICATED ROWS'u KALDIRMALIM gerekiyor. Sum değil.
Olası yinelenen [SUM DISTINCT Satırları Nasıl?] (Http://stackoverflow.com/questions/4464946/how-do-i-sum-distinct-rows) – rsjaffe