sql-server - SQL Server 不会正确划分值
问题描述
我试图在 SQL Server 中获取下面原始数据的第 80 个和第 50 个百分位数,然后将第 80 个百分位数除以第 50 个百分位数,并将其称为 LOTTR。当我这样做时,LOTTR 值是错误的,因为手动计算是不同的。我不知道它为什么这样做。
TMC Travel_time
----------------------
113P07005 0.79
113P07005 0.61
113P07005 1.31
113P07005 1.25
113P07005 1.87
113P07005 1.31
113P07005 1.25
到目前为止我有什么代码:
WITH PERCENTILES_LOTTR
AS (
SELECT TMC_code
,EPOCH
,percentile_CONT(.80) WITHIN
GROUP (
ORDER BY cast(travel_time_minutes AS FLOAT)
) OVER (PARTITION BY TMC_code) AS P80
,percentile_CONT(.50) WITHIN
GROUP (
ORDER BY cast(travel_time_minutes AS FLOAT)
) OVER (PARTITION BY TMC_code) AS P50
FROM [dbo].[I430_2019_nonull_Cars_1_21]
WHERE DATEPART(HOUR, EPOCH) BETWEEN 6
AND 7
AND (
WKDAY != 'SAT'
AND WKDAY != 'SUN'
)
)
SELECT tmc_code
,cast(p80 AS FLOAT) / cast(p50 AS FLOAT) AS LOTTR
FROM percentiles_LOTTR
GROUP BY tmc_code
,p80
,p50
ORDER BY Tmc_CODE
输出结果:
解决方案
推荐阅读
- css - 如何对 CSS 选择器的组件进行分组
- c++ - 是否可以定义一个引用变量不占用额外存储空间的类?
- google-analytics-api - 无法执行 properties.userLinks.create
- string - 根据用户表单输入创建自定义报告的最佳实践?
- wordpress - 管理在 woocommerce 上订购的商品编号范围
- javascript - 从 Promise 中获取一个值并返回它而不是 console.log
- javascript - 反应流选择顶部边缘选择底部边缘
- javascript - Node.js 缓存来自类对象内部方法的请求数据
- python - 删除元组中元组列表中的括号
- python - 去除彼此靠近的二维点