Sql 如何组合底部“;x";价值的百分比?

Sql 如何组合底部“;x";价值的百分比?,sql,ms-access,Sql,Ms Access,我有一个查询来创建一个包含数据的帕累托图。有15-20个铲斗,但底部5个左右的铲斗无关紧要,它们应该组合在一起。这是Access中的,因此我正在寻找一个可持续的查询,它可以获取最底层3%的值(或5%,随便什么),并将它们与一个新的job\u code\u desc像“Other”一样进行分组。这是我的问题 SELECT original.job_code_desc, sum(original.sumofdowntime) AS SumOfDowntime FROM (SELECT IIF

我有一个查询来创建一个包含数据的帕累托图。有15-20个铲斗,但底部5个左右的铲斗无关紧要,它们应该组合在一起。这是Access中的,因此我正在寻找一个可持续的查询,它可以获取最底层3%的值(或5%,随便什么),并将它们与一个新的
job\u code\u desc
像“Other”一样进行分组。这是我的问题

SELECT 
original.job_code_desc, 
sum(original.sumofdowntime) AS SumOfDowntime

FROM 
(SELECT IIF(pareto_downtime_detail_tbl.job_code_desc like "*RP*","HI-LO WORK",pareto_downtime_detail_tbl.job_code_desc) AS job_code_desc, Round(Sum([pareto_downtime_detail_tbl].[downtime]),2) AS SumOfdowntime
FROM pareto_downtime_detail_tbl
WHERE (((pareto_downtime_detail_tbl.position_desc) Like '*selector*'))
GROUP BY pareto_downtime_detail_tbl.job_code_desc
HAVING (((pareto_downtime_detail_tbl.job_code_desc) Not Like 'break' And (pareto_downtime_detail_tbl.job_code_desc) Not Like '*prep*'))
ORDER BY Round(Sum([pareto_downtime_detail_tbl].[downtime]),2) DESC)  AS original

GROUP BY 
original.job_code_desc

ORDER BY 
sum(original.sumofdowntime) DESC;
我得到的结果是

job_code_desc   SumOfDowntime
D2S ONHOLD  1653.85
IWHSUPPORT  1278.62
D2S LOAD    701.13
LIGHT DUTY  693.24
BATT0001    567.52
D2S MAINT   457.13
D2S NOWORK  386.89
D2S SPPROJ  272.12
HI-LO WORK  212.06
D2S TRAIN   126.91
D2S MEET    95.77
MANAGER 83.78
D2S UNLO    73.59
D2S CLEAN   65.34
D2S SYSDWN  65.13
REC-FORK    25.7
D2S_DISTRO  4.95
TWR SYSDWN  3.99
REC-REJECT  1.08
SEL-TIER    0.25
SEL-CASE    0.09
ACP CLEAN   0.02

所以我只想取D2S_发行版及以下的值,并将这些值加在10.13中,标题为“其他”。我真的不知道该怎么做。

比方说,你得到了上述结果。然后可以使用子查询对结果进行分组


在本例中,我将SumOfDowntime编辑您的问题时的结果与伪代码中的实际操作进行分组,结果并不十分清楚您想要什么。有一个非常类似的问题的答案。嗯,我已经有一个显示Cum PCT的帕累托查询。我会在提供的链接中修改它和您的回复,看看我是否能得到我想要的。
SELECT tbl.Job_DescGrouped, SUM(tbl.SumOfDowntimeinsert) AS ColumnTest
FROM (
 select *, 
 CASE WHEN SumOfDowntimeinsert > 1 THEN job_desc ELSE 'OTHERS' END AS Job_DescGrouped,
 CASE WHEN SumOfDowntimeinsert > 1 THEN 0 ELSE 1 END AS OrderByColumn
 from jobs) tbl
GROUP BY tbl.Job_DescGrouped
ORDER BY OrderByColumn, ColumnTest