我试图在一张表中获取具有一定数量卧室的房产总数,该表格存储所有房产以及每个房产中的卧室数量。做一个简单的查询,如:
SELECT bedrooms, COUNT(bedrooms)
FROM properties
WHERE city = 'sao_paulo'
GROUP BY bedrooms;
或其在 SQLAlchemy 中的等价物:
rooms = db.session.query(Properties.bedrooms, func.count(Properties.bedrooms)).filter(Properties.city == location).group_by(Properties.bedrooms).all()
返回如下内容:
+--------+--------+
| Number | Count |
+--------+--------+
| 0 | 132 |
| 1 | 38089 |
| 2 | 145384 |
| 3 | 201911 |
| 4 | 62070 |
| 5 | 3953 |
| 6 | 769 |
| 7 | 147 |
| 8 | 102 |
| 9 | 47 |
+--------+--------+
但是,我想得到这样的东西:
+--------+--------+
| Number | Count |
+--------+--------+
| 1- | 38941 |
| 2 | 145384 |
| 3 | 201911 |
| 4 | 62070 |
| 5+ | 5018 |
+--------+--------+
如果低于某个阈值的结果低于或高于它们,则将其与低于或高于它们的值分组。PostgreSQL 中有什么解决方案可以做这样的事情吗?如果有,是否也可以使用 SQLAlchemy 编写?