2017-10-03 8 views
0

私は、ユーザーが何ステップを取ったかに関する情報を提出できるデータベースを用意していますが、そのようにリーダーボードを作成しようとしていますが、 、彼らは別々に引っ張る。二重のIDを持つ2つのmysql行を結合する

SELECT step_count.steps, step_count.email, logins.FirstName, logins.LastName 
    FROM step_count, logins 
    WHERE step_count.email=logins.email 

これは、クエリであり、この情報は

steps | email       | FirstName | LastName 

5000 | [email protected]     | One  | onetest 
300 | [email protected]     | Two  | twotest 
200 | [email protected]     | One  | onetest 

を引っ張られている方法であるステップの合計量を得るために2つを結合する方法はありますか?

+2

はい、 'SUM()'と 'GROUP BY'を使用するようになり、マニュアルを参照してください.com/doc/refman/5.7/ja/group-by-functions.html –

答えて

1

あなたはGROUP BY文でSUM集約関数を使用することができます(ステップ)をすべてのグループに適用します。あなたはまた、WHERE句を使用する代わりにテーブルを結合するINNER JOIN声明に見てみる必要がありますmysql aggregate functions

は見てみましょう。

+0

これはうまくいきました、ありがとうございました! – Phoebe

-1

GROUP BYを再編成するキーを指定して使用し、stepsSUM()を使用すると、groupByで指定されたキーの合計ステップを取得できます。

さらに詳しい情報:あなたが集計するフィールドでグループ化することができます。このように

SELECT SUM(step_count.steps), 
     step_count.email, 
     logins.FirstName, 
     logins.LastName 
FROM step_count, logins 
WHERE step_count.email=logins.email 
GROUP BY step_count.email, logins.FirstName, logins.LastName 

、および数値フィールドを合計:https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html

0

あなたはこのクエリを試すことができます。

SELECT 
    sum(step_count.steps) as sum_steps, 
    step_count.email, 
    logins.FirstName, 
    logins.LastName 
FROM 
    step_count 
    inner join logins on 
     step_count.email=logins.email 
group by 
    step_count.email, 
    logins.FirstName, 
    logins.LastName 
0

はMySQLにSUM()関数を使用することができます。します。https://dev.mysql - - https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_sum さらに情報が、あなたのクエリのための上記https://www.tutorialspoint.com/mysql/mysql-sum-function.htm いくつかの参照が

SELECT SUM(step_count.steps), step_count.email, logins.FirstName, logins.LastName 
    FROM step_count, logins 
    WHERE step_count.email=logins.email 
    GROUP BY logins.email; 
関連する問題