【问题标题】: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
    

    【讨论】:

      猜你喜欢
      • 2012-03-09
      • 1970-01-01
      • 2022-08-09
      • 2012-11-20
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      相关资源
      最近更新 更多