计算MySQL表中不同行的结果
我试图在MySQL表中按行计算条目: 示例数据:计算MySQL表中不同行的结果,mysql,Mysql,我试图在MySQL表中按行计算条目: 示例数据: +------------------------------------------------+ | facebook_id | linkedin_id | twitter_id | vk_id | +------------------------------------------------+ 1234143134 0 13413993 13499 0 0
+------------------------------------------------+
| facebook_id | linkedin_id | twitter_id | vk_id |
+------------------------------------------------+
1234143134 0 13413993 13499
0 0 0 0
12313431334 0 13413243 0
12341431340 13419194319 13419943 13413
0 0 0 0
+------------------------------------------------+
目的是显示每个_id有多少个条目。
在上面的例子中,facebook有3个,LinkedIn有1个,twitter有3个,vk有2个
以下是我尝试计算它们的次数:
COUNT(`facebook_id`) AS `facebook`,
COUNT(`linkedin_id`) AS `linkedin`,
COUNT(`twitter_id`) AS `twitter`,
COUNT(`vk_id`) AS `vkontakte`
FROM `user`
如何解决这个问题?谢谢:)像这样使用SUM()
:
select
sum(facebook_id <> 0) facebook,
sum(linkedin_id <> 0) linkedin,
sum(twitter_id <> 0) twitter,
sum(vk_id <> 0) vk
from `user`
像这样使用SUM()
:
select
sum(facebook_id <> 0) facebook,
sum(linkedin_id <> 0) linkedin,
sum(twitter_id <> 0) twitter,
sum(vk_id <> 0) vk
from `user`
我们也可以编写
SUM(当facebook\u id 0然后1 ELSE 0结束时的情况)
以获得等效结果+10您的代码是满足此要求的标准方式,但由于MySql提供了此功能,我使用它。我们也可以编写SUM(当facebook\u id 0然后1 ELSE 0结束时的情况)
为了得到一个等价的结果+10,您的代码是满足此要求的标准方法,但由于MySql提供了此功能,我使用它。
| facebook | linkedin | twitter | vk |
| -------- | -------- | ------- | --- |
| 3 | 1 | 3 | 2 |