gpt4 book ai didi

sql - 使用 SQL DB for i 的最高行百分比

转载 作者:行者123 更新时间:2023-12-04 05:14:31 25 4
gpt4 key购买 nike

我正在尝试获得返回值的前 80% 的返回。使用 SQL DB for i TOP条款将不起作用。我看过一些使用 Count() 的例子在嵌套的 select 语句中,但我不确定它应该如何适合我已经编写的查询。我已经有 2 个子查询,所以我需要找出它如何适合,或者它是否可以工作。这是我到目前为止所拥有的:

Select  CATEGORY,
LINE,
ITEM#,
Units
From D*****.*****ST
Inner Join (Select DW******.*****FO.ITEM,
Sum (SALES_UNITS) As Units,
CATEGORY
From DW*******.*****FO
Inner Join (Select CATEGORY,
DW****.******RY.ITEM
From DW****.******RY
Where CATEGORY='BRAKES') As CA***ST
On DW*******.*****FO.ITEM=CA*****.***M
Where ("DATE" between current date -1 years and current date) And (SALES > 5.00)
Group By DW*******.******O.ITEM,
CATEGORY) As Units_List
On DW****.*****ST.**EM#=U*********.***M
Group By CATEGORY,
LINE,
ITEM#,
Units
Order By Units DESC

所以这里的某个地方将是嵌套的 Count()我假设的条款,我只是不确定它在大局中的位置。我还在学习一些中级 SQL 的东西,所以如果问题看起来有点简单,我很抱歉。

最佳答案

我建议使用窗口函数。我发现您的查询很难理解,但这是一个想法:

select t.*
from (select t.*,
row_number() over (order by units desc) as seqnum,
count(*) over () as totnum
from (<view that gets you all the data you want>
) t
) t
where seqnum <= 0.8*totnum

这个想法是使用窗口函数来获得总数和排名(我使用 row_number() ,如果你有关系, rank() 可能更合适)。然后你可以只使用 where子句来获得你想要的值。

关于sql - 使用 SQL DB for i 的最高行百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14460695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com