2016-09-14 11 views
0

私はWHEREとGROUP BY条件でMySQL構文を実行したい単純なMySQLテーブルを持っています。MySQLでWHEREとGROUP BYを一緒に使用するには?

MySQLの表:私は 'B'

SELECT * FROM table where destination = 'b'; 

ですが、私は唯一の送信者、すなわち ''

を持っている場合は、この文脈では

sender destination message 
| a |  | b  | | .. | 
| b |  | a  | | .. | 
| a |  | b  | |  | 
| a |  | b  | |  | 
| b |  | a  | |  | 

、私は私のために3つのメッセージを持っていますしたがって、私は結果を '1'というメッセージにしたいと思っていますが、送信者の点では数えます。

コードを修正してください。

SELECT * FROM table where destination = 'b' GROUP BY sender; 

ここで、「b」には「a」という送信者が1人しかないので、結果として1が必要です。 2人の異なる送信者がいる場合は、2である必要があります。

+1

編集し、あなたの質問にヌルをスキップして、目的の結果を含める:あなたは 'B' destintationsの送信者と数を受信しました。 –

答えて

0

次のように結果をカウントする必要があります。これがあなたに役立つことを願っています

SELECT count(*) AS ct FROM table WHERE destination='b' GROUP BY sender; 
+0

ここでは、1つの送信者しか持たないので、結果として1が欲しいです。私は2つの異なる送信者がある場合は2 – tapaljor

0

私は結果としてあなたが期待しているものがよく分かりません。

このクエリを試してみてください。

SELECT sender, count(*) AS cnt FROM table where destination='b' GROUP BY sender; 
+0

ここに私は1つの結果としてb 'が1つだけの送信者を持っている必要があります。 2人の異なる送信者がいる場合は、2人でなければなりません – tapaljor

0
SELECT COUNT(*) AS CNT FROM table_name WHERE destination='b' GROUP BY sender 

OR

SELECT COUNT(message) AS CNT FROM table_name WHERE destination=b GROUP BY sender 
関連する問題