1

我有一个名为“ticket”的表,如下所示:

number   branchid
3001     1
3002     1
5001     2
7001     2
3001     3

我想做的就是创建一个新表:

branchid    High-Value      Non-HighValue

我希望当出现 3000 系列中的一个数字时,出现的总计数列在高价值列中,与它的 branchid 相对,并且当出现 5000 或 7000 系列数字时,出现的总计数列在非高价值列中,与其分支编号。例如:

Branchid    HighValue    non-highvalue
1           2            NULL
2           NULL         2
3           1            NULL
4

1 回答 1

2
select  branchid
,       sum(case when number between 3000 and 3999 then 1 end) as HighValue
,       sum(case when number between 5000 and 5999 then 1 
                 when number between 7000 and 7999 then 1 end) as NonHighValue
from    ticket
group by
        branchid

SQL Fiddle 上的实时示例。

于 2012-10-11T07:20:36.573 回答