我在一个包含多个整数记录的表中有一列。
我需要写一个PostgreSql查询,它将返回大于90,95和98百分位数的所有值的平均值。
e.g。
我的专栏中有1-150系列。
现在,如果我把这个专栏的第90个百分位数提高到135左右。
我需要计算所有大于135的值的平均值。
同样对于95和98百分位数。
如果可能的话,单个查询中的所有三个值。
答案 0 :(得分:0)
作为样本我使用1到300之间的数字:
$("#inputACCO_KEY").autocomplete({
source: function (request, response) {
$.ajax({
method: 'post',
url: "/wsSeCAMERC/GetCA/",
data: {
prefixText: $("#inputACCO_KEY").val(),
count: 30
},
dataType: 'json',
success: function (data) {
response($.map(data, function (item, i) {
return {
label: item.cACCO_NME,
value: item.iACCO_KEY
};
})
);
},
error: function (data) {
alert('error!');
}
});
},
minLength: 3,
select: function (event, ui) {
$("#inputACCO_KEY").val(ui.item.label);
$("#iACCO_KEY").val(ui.item.value);
return false;
}
});
});
这是一个例子:
t=# select generate_series(1,300,1) g
g
---
1
2
3
4
...
答案 1 :(得分:0)
如果我理解正确,可能你需要这个。
尝试:
with t(col) as(
select * from generate_series(1, 150)
)
select
(select avg(col) from t where col > (select count(*) * 90 / 100.00 from t)),
(select avg(col) from t where col > (select count(*) * 95 / 100.00 from t)),
(select avg(col) from t where col > (select count(*) * 98 / 100.00 from t))