sql - 按价格范围分组

标签 sql postgresql count group-by

假设我有一张房地产 Assets 表:

A  15,000
B  50,000
C 100,000
D  25,000

我想按 0 - 49,999、50,000 - 99,999 和 100,000 - 200,000 对它们进行分组

所以结果应该是:

   0 -  49k (2)
 50k -  99k (1)
100k - 200k (1)

有没有办法在一个 SQL 语句中做到这一点?顺便说一句,我正在使用 Postgres。

最佳答案

你可以GROUP BY一个表达式,类似这样:

SELECT price/50000*50000 AS minPrice, 
    (price/50000+1)*50000-1 AS maxPrice, 
    COUNT(*)
FROM table
GROUP BY price/50000;

关于sql - 按价格范围分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1999421/

相关文章:

sql - 优化 SQL 查询

postgresql - 在函数中使用 ENUM 类型

arrays - 如何对 JSONB 数组的元素使用 LIKE?

sql - PostgreSQL 可以在 jsonb 数组对象上加入吗?

MySQL 查询问题

linux - 按日期时间计算 linux 中的文件

sql - 同一张表上两个不同聚合函数的连接结果

多表连接的 SQL 查询性能

sql-server - 如何选择列和计数(*)?在 SQL 中

php - 结合 3 个不同的 MySQL 表的值,连接表 1 和表 2 并检查此连接中是否存在表 3 值