我正在尝试计算MySQL表中行中的条目:
示例数据:
+------------------------------------------------+
| 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`
每个布尔表达式如下:
facebook_id <> 0
取值为1或0。
请参见demo。
结果:
| facebook | linkedin | twitter | vk |
| -------- | -------- | ------- | --- |
| 3 | 1 | 3 | 2 |