0
查詢需要計算每個用戶的總分數。對於每個qid,具有較低時間的用戶獲得一個點並且總點是所有點的總和。下面的查詢只是返回每個用戶的總嘗試次數,需要一種方式來返回點數。MySql查詢來計算每個用戶的分數
Incorrect Query=select user, count(*) from (select * from (select * from xyz order by
time ASC) as temp1 group by temp1.user,temp1.qid) AS temp2 group by user
DB:
CREATE TABLE xyz (
id INT PRIMARY KEY AUTO_INCREMENT,
user VARCHAR(20),
time INT,
qid INT
);
INSERT INTO xyz VALUES ( 1 , 'abc' , 15 , 1);
INSERT INTO xyz VALUES ( 2 , 'abc' , 6 , 1);
INSERT INTO xyz VALUES ( 3 , 'xyz' , 11 , 1);
INSERT INTO xyz VALUES ( 4 , 'abc' , 4 , 1);
INSERT INTO xyz VALUES ( 5 , 'xyz' , 13 , 2);
INSERT INTO xyz VALUES ( 6 , 'abc' , 11 ,2);
INSERT INTO xyz VALUES ( 7 , 'abc' , 9 , 3);
INSERT INTO xyz VALUES ( 8 , 'xyz' , 10 , 3);
INSERT INTO xyz VALUES ( 9 , 'xyz' , 2 , 3);
INSERT INTO xyz VALUES ( 10 , 'xyz' , 2 , 4);
預期輸出:
USER Score
abc 2
xyz 2
輸出說明:
For qid=1, abc has lower time so 1 point to abc
For qid=2, abc has lower time so 1 point to abc
For qid=3, xyz has lower time so 1 point to xyz
For qid=4, xyz has lower time so 1 point to xyz
謝謝
因此每次
blckbird
2015-02-10 13:32:29
@blckbird對於每個qid用戶的得分較低的時間爲該qid增加 – ak111in 2015-02-10 13:35:31