我有简单的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
答案 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