SQL组由NULL / NOT NULL组成

时间:2015-09-16 08:23:56

标签: sql postgresql

id name facebookid linkedinid  googleid                                                 
-- ---- ---------- ----------  -------- 
1  john  123456xde  NULL        345ft566     
2  peter NULL       NULL        4563erf
3  suma  df3466     yh4566      NULL
4  rick  NULL       34Nh6       NULL
5  ronny NULL       NULL        NULL
6  susan NULL       NULL        3456

我想知道有多少用户使用linkedin,google,facebook注册,以及根本没有连接任何网络的用户。

预期结果:

facebook linkedin google direct
-------- -------- ------ -----
 2          2         3      1

SQL查询会很棒但我希望学习如何处理它。

由于

编辑:

我试过了

SELECT count(facebookid), count(linkedinid), count(googleid) FROM user;

1 个答案:

答案 0 :(得分:3)

试试这个:

    select 
count(facebookid) "linkedinid", 
count(linkedinid) "linkedinid", 
count(googleid) "googleid", 
count(case 
         when facebookid is null 
              and linkedinid is null 
              and googleid is null then 1 else null end) direct
from your_table