1

我有一个 PostgreSQL (9.2) 数据库,我试图从中获取一些分组数据。这些组应该是:1、2、3、4、5、>5(高于 5)

这可能吗?如果是,如何?

到目前为止我所拥有的:

select secondary_diagnoses_count 
from admissions 
group by secondary_diagnoses_count 
order by secondary_diagnoses_count;
4

1 回答 1

2

更多的数据会很好,但通常你可以使用case

with cte as (
    select
        case
            when secondary_diagnoses_count > 5 then
                '>5'
            else
                secondary_diagnoses_count::text
        end as grp
    from admissions
)
select grp, count(*)
from cte 
group by grp
order by grp

PostgreSQL 还允许在其中使用别名列,group by因此可以这样编写:

select
    case
        when secondary_diagnoses_count > 5 then
            '>5'
        else
            secondary_diagnoses_count::text
    end as grp
from admissions
group by grp
order by grp

sql fiddle demo

于 2013-09-24T09:22:33.117 回答