sql - SQL 用 ntile 将列值分成相等的组
问题描述
我需要编写 sql 查询,将产品按价格分成 3 个相等的组,(最便宜的产品将在第一组中)。对于每个组,我必须展示它包含的价格范围和平均库存单位。
我尝试使用 ntile 但我卡住了:
SELECT UnitPrice, NTILE(3) OVER (
ORDER BY UnitPrice ASC
) AS productGroup, UnitsInStock
FROM Products
解决方案
您需要在此查询之上放置一个查询。像这样的东西: -
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
推荐阅读
- ios - 在 Swift 中使用 CoreLocation 实时测量距离
- sql - 如何从主从表中获取最后一条记录
- javascript - 如何在按钮单击时通过 whatsapp 或邮件从 react web 应用程序共享 pdf 文件?
- javascript - 使用 Jest 和 react-testing-library 测试具有大量输入字段的表单的正确方法是什么?
- class - TypeError:列表索引必须是整数或切片,而不是 str - 用于时间表
- javascript - 如何使用一个数组作为另一个数组的键?
- javascript - 在单击另一个表格行之前删除类 HTML CSS JAVASCRIPT
- sql - 使用 hive 中的内部连接数据创建一个新表 - 我收到一个错误
- html - 用子元素设置父元素的宽度
- android - Google Play Console App Rejection APK 需要有效的隐私政策和重要的披露