2016-06-21 22 views
2

'writer'と 'likes'列のテーブル 'comments'があります。 'writer'は作家のユーザー名で、そのコメントの好き嫌いの数は「好き」です。特定のセルからの合計を取得するSQLの選択

の合計の好きな数を個選択する必要があります。例えば

この表:ユーザーの

writer likes 
x  5 
x  2 
x  7 
y  3 

(I必要)選択 'X' ユーザのために、14を返すべきである 'のy' 3

答えて

1

あなたが特定の作家のために選択したい場合は、このSQL文を使用します。

SELECT SUM(likes) FROM comments WHERE writer = 'x' 

SUM(likes)は「合計」の計算を提供し、WHERE writer = 'x'が、これは特定のためのものであることを示していますライター 'x'。

これはそれを行うだろう、すべてを一度にすべてのユーザーの同類の合計数を選択するには:

SELECT writer, SUM(likes) FROM comments GROUP BY writer 

これはGROUP BY writer句を使用して、writerSUM(likes)、および意志グループ合計作家の両方を含んでいます。

使用すると、1つのクエリで合計一部のユーザーのための同類の数(しかし、それらのすべてではない)を選択したい場合は、我々はこのように、前の文、組み合わせることができます。この場合

SELECT writer, SUM(likes) FROM comments WHERE writer IN ('x', 'y') GROUP BY writer 

WHERE writer IN ('x', 'y')は、ライター 'x'と 'y'のみの結果を選択することができます。この技法は、すべての作家のレコードを選択することが過度になるような状況では非常に強力であり、一度に1つの作家を選択することはパフォーマンス上の問題になる可能性があります。

2
SELECT writer, sum(likes) from comments 
GROUP BY writer; 

このクエリは合計しますGROUP BYのおかげで、投稿者のコメント

+0

クエリの仕組みに関する情報を少し追加すると、回答の質が向上します。 –

1

合計ライツを得るには、同じライター& SUM(likes)を組み合わせるのにGROUP BYライターを使用する必要があります。

SELECT writer, SUM(likes) FROM comments GROUP BY writer 
関連する問題