1

私はこのテーブルを持っています

user_id     time_completed
    4           86.30887
    5           57.81364
    5           35.50281
    5           10.00000
    5           74.19355
    5           31.91489
    6           15.00000
    6           20.50000

ユーザーごとに常に合計する必要があります。次のようになります。

user_id     time_completed
4           86.30887
5           209.42489
6           35.50000

これが私が最初のテーブルを取得する方法です:

$result = mysql_query ("SELECT user_id,time_completed FROM `mytable` ORDER BY  `mytable`.`user_id` ASC;" )

何か案が?

編集: 次の表(db_users)の名前のuser_idを置き換える必要がある場合はどうなりますか?

id          username
1           admin
2           peter
3           tom
4           user
5           joey
6           helen

EDIT2: このテーブル(db_users)を変更しましたが、国もクエリに表示されます。

id          username        country
1           admin           ES
2           peter           IT
3           tom             US
4           user            GB
5           joey            GE
6           helen           FR

このような:

user_id     time_completed      country
4           86.30887            GB
5           209.42489           GE
6           35.50000            FR

ここを見てください:http ://sqlfiddle.com/#!2 / 24d1b / 11

4

1 に答える 1

8

SUM()集計関数である which を使用し、それらをグループ化する必要がありますuser_id

SELECT user_ID, SUM(time_COmpleted) totalTime
FROM tableName
GROUP BY user_ID

SQLFiddle デモ

更新 1

SELECT b.username, SUM(time_COmpleted) totalTime
FROM tableName a 
      INNER JOIN  db_users b
        ON a.user_id = b.id
GROUP BY b.username

SQLFiddle デモ

于 2012-10-19T14:18:41.747 に答える