Postgresql一个表的多个计数

前端之家收集整理的这篇文章主要介绍了Postgresql一个表的多个计数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
从我的表中的两列,我想得到这些列中的值的统一计数.
例如,两列是:

表:报告

@H_502_4@| type | place | ----------------------------------------- | one | home | | two | school | | three | work | | four | cafe | | five | friends | | six | mall | | one | work | | one | work | | three | work | | two | cafe | | five | cafe | | one | home |

如果我做:
SELECT类型,count(*)从报表
按类型分组

我得到:

@H_502_4@| type | count | ----------------------------- | one | 4 | | two | 2 | | three | 2 | | four | 1 | | five | 2 | | six | 1 |

我试图得到这样的东西:(一个最右边的列,我的类型分组在一起,多个列与每个地方的计数值)
我得到:

@H_502_4@| type | home | school | work | cafe | friends | mall | ----------------------------------------------------------------------------------------- | one | 2 | | 2 | | | | | two | | 1 | | 1 | | | | three | | | 2 | | | | | four | | | | 1 | | | | five | | | | 1 | 1 | | | six | | | | | | 1 |

这将是像这样运行像上面一样的计数的结果:

@H_502_4@SELECT type,count(*) from reports where place = 'home' group by type SELECT type,count(*) from reports where place = 'school' group by type SELECT type,count(*) from reports where place = 'work' group by type SELECT type,count(*) from reports where place = 'cafe' group by type SELECT type,count(*) from reports where place = 'friends' group by type SELECT type,count(*) from reports where place = 'mall' group by type

这是否可能与postgresql

提前致谢.

你可以在这种情况下使用案例 – @H_502_4@SELECT type,sum(case when place = 'home' then 1 else 0 end) as Home,sum(case when place = 'school' then 1 else 0 end) as school,sum(case when place = 'work' then 1 else 0 end) as work,sum(case when place = 'cafe' then 1 else 0 end) as cafe,sum(case when place = 'friends' then 1 else 0 end) as friends,sum(case when place = 'mall' then 1 else 0 end) as mall from reports group by type

应该解决你的问题

猜你在找的Postgre SQL相关文章