我想从下表中查找具有相似购买值(value)的销售数量:
sale_number | value
------------+-------
1 | 10
2 | 11
3 | 21
4 | 30
普通的group by
语句按精确的值
进行分组:
select count(sale_number), value from table group by value
会给出:
count(sale_number) | value
------------+-------
1 | 10
1 | 11
1 | 21
1 | 30
是否可以按不精确的数字和阈值(例如 +/- 10%)进行分组?给出期望的结果:
count(sale_number) | value
------------+-------
2 | 10
2 | 11
1 | 21
1 | 30
最佳答案
您可以使用相关子查询执行您想要的操作:
select t.*,
(select count(*)
from t t2
where t2.value >= t.value * 0.9 and
t2.value <= t.value * 1.1
) as cnt
from t;
关于sql - 按相似数量分组 SQL (oracle sql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58218284/