【问题标题】:SQL divide the column values to equal groups with ntileSQL 用 ntile 将列值分成相等的组
【发布时间】:2019-04-30 22:50:33
【问题描述】:
我需要编写 sql 查询,将产品按价格分成 3 个相等的组,(最便宜的产品将在第一组中)。对于每个组,我必须提供其包含的价格范围和平均库存单位。
我尝试使用 ntile 但卡住了:
SELECT UnitPrice, NTILE(3) OVER (
ORDER BY UnitPrice ASC
) AS productGroup, UnitsInStock
FROM Products
【问题讨论】:
标签:
sql
sql-server
northwind
【解决方案1】:
您需要在此之上添加一个查询。像这样的东西:-
select productGroup, min(UnitPrice), max(UnitPrice), avg(UnitPrice)
from (
SELECT UnitPrice, NTILE(3) OVER (ORDER BY UnitPrice ASC) AS productGroup
, UnitsInStock
FROM Products
) t1
group by productGroup