我有一个 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;
我有一个 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;
更多的数据会很好,但通常你可以使用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