SQL用ntile将列值划分为相等的组

时间:2019-04-30 22:50:34

标签: sql sql-server northwind

我需要编写sql查询,以按价格将产品划分为3个相等的组(最便宜的产品将在第一组中)。对于每个组,我必须提供其包含的价格范围和平均库存量。

enter image description here

我尝试使用ntile但被卡住了:

SELECT UnitPrice, NTILE(3) OVER (
    ORDER BY UnitPrice ASC
) AS productGroup, UnitsInStock
FROM Products

1 个答案:

答案 0 :(得分:0)

您需要在此查询之上添加一个查询。像这样:-

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