SQL,返回具有不同where子句

时间:2016-11-02 14:24:51

标签: sql

我有一个表,其列只是会话的长度,我想返回长度为零的会话数和长度大于零的会话数。

我可以用两个单独的命令

来做到这一点
select count(session_length) from my_table where session_length=0

select count(session_length) from my_table where session_length>0

但我希望看到结果合并在一个表中

3 个答案:

答案 0 :(得分:1)

您可以使用条件聚合进行一次查询。

select 
count(case when session_length = 0 then 1 end),
count(case when session_length > 0 then 1 end) 
from my_table

答案 1 :(得分:1)

select 1 as QryNo, count(session_length) as SessLen
from my_table 
where session_length=0

union 

select 2 as QryNo, count(session_length) as SessLen
from my_table
where session_length>0

select 
    case
      when session_length = 0 then 1
      else 2
    end  as QryNo, 
    count(session_length) as SessLen
from my_table

答案 2 :(得分:0)

这可能过于简单,如果我误读了你的查询,你可以使用

道歉
select count(session_length) from my_table where session_length >= 0

再次,道歉,如果这不是你想要的。