如何计算sql中列中的不同类型?

时间:2014-05-29 09:57:42

标签: sql sql-server-2008

Data:
        QID  Type DOB
        -------------
        1    1    01/01/1980
        1    2    03/01/1981
        1    2    01/02/1991
        1    1    01/01/1980
        1    2    03/01/1981
        1    3    01/02/1991
        1    1    01/01/1980
        2    2    03/01/1981
        2    2    01/02/1991
        2    1    01/01/1980
        2    2    03/01/1981
        2    2    01/02/1991

我需要选择获得此结果的查询:

    QID  Type(1) Type(2) Type(3)
    ----------------------------
     1     3        3       1
     2     1        4       0

我应该使用Function还是可以嵌入select查询?

1 个答案:

答案 0 :(得分:1)

您可以这样做:

select qid,type,rank() over(partition by qid order by type) rank from tabl

也可以使用PIVOT功能。