0

我试图在一张表中获取具有一定数量卧室的房产总数,该表格存储所有房产以及每个房产中的卧室数量。做一个简单的查询,如:

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 编写?

4

0 回答 0