我正在尝试计算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   |

10-07 14:12
查看更多