sql怎么写根据评分排序,在根据收入累计求和取每十分位点
时间: 2024-10-08 17:15:11 浏览: 32
SQL SERVER 分组求和sql语句
在SQL中,如果你想根据评分对数据进行降序排序,并计算每个分数段(例如每十分位)的总收入累计,你可以使用`BETWEEN`关键字分段,然后用窗口函数`SUM()`和`OVER()`来达到目的。这里是一个基本的例子,假设有一个名为`orders`的表,其中包含`rating`(评分)和`income`(收入)字段:
```sql
WITH ranked_orders AS (
SELECT rating,
income,
NTILE(10) OVER (ORDER BY rating DESC) as percentile_group
FROM orders
)
SELECT rating,
income,
SUM(income) OVER (PARTITION BY percentile_group ORDER BY rating) as cumulative_income
FROM ranked_orders
ORDER BY rating DESC;
```
在这个查询中:
- `NTILE(10)`函数将评分分为10等份(每十分位),从最高分到最低分。
- `SUM(income) OVER (PARTITION BY percentile_group ORDER BY rating)`在每个分组内按评分顺序累积收入。
- 最后的`ORDER BY rating DESC`是为了得到评分降序的结果。
阅读全文