2016-09-14 17 views
0

我有简单的MySQL表,我想在WHERE和GROUP BY条件下运行MySQL语法。如何在MySQL中一起使用WHERE和GROUP BY?

MySQL表:

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

在这方面,我有我的3个消息,如果我是 'B'

SELECT * FROM table where destination = 'b'; 

但我只有发送者,即 '一个'

因此,我希望结果为'1',意思是对我而言,但是按照发件人来计算。

要更正的代码。

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

这里我想要1作为结果,因为'b'只有一个发件人是'a'。如果我有两个不同的发件人,它必须是2

+1

编辑你的问题,包括了预期的效果。 –

回答

0

您需要按如下方式计算结果的数量。希望这可以帮助你

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

这里我想要1作为结果因为'B'只有一个发件人。如果我有两个不同的发件人,它必须是2 – tapaljor

0

我不确定你期待的结果。

试试这个查询。你已经收到“B” destintations的发送者和计数:

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

这里我想要1作为结果因为'b'只有一个发件人。如果我有两个不同的发件人,它必须是2 – tapaljor

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

或跳过空

SELECT COUNT(message) AS CNT FROM table_name WHERE destination=b GROUP BY sender