如何在MySQL中一起使用WHERE和GROUP BY?

时间:2016-09-14 12:38:52

标签: mysql

我有简单的MySQL表,我想用WHERE和GROUP BY条件运行MySQL语法。

MySQL表:

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

在这种情况下,如果我是' b'

,我会收到3条消息
SELECT * FROM table where destination = 'b';

但我只有发件人,即&#39; <#39;

因此,我希望结果为&#39; 1&#39;消息对我而言,但以发件人的数量计算。

要更正的代码。

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

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

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我不确定你的结果是什么。

尝试此查询。您已收到“&b; destintations:

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

答案 2 :(得分: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