2015-09-16 2 views
0
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, а также, возможно, не подключено к какой-либо сети вообще.Группа SQL по NULL/NOT NULL

Ожидаемый результат:

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

SQL запрос будет большим, но я ищу, чтобы узнать, как подойти к этому.

Благодаря

EDIT:

Я попытался

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

показать нам, что вы пытались –

+0

@LuthandoLoot сделал .. спасибо – sf2dev

+0

почему downvote ? Я отправил свою попытку. – sf2dev

ответ

2

Попробуйте это:

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 
+0

Спасибо, это работает. можно ли попробовать это по группе? или что не применяется? – sf2dev

+0

Не должно быть никаких проблем. – jarlh

Смежные вопросы