首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL:如何以两种不同的顺序从同一表列中获取行,限制值为max 3值和min 3值

SQL:如何以两种不同的顺序从同一表列中获取行,限制值为max 3值和min 3值
EN

Stack Overflow用户
提问于 2022-01-07 08:26:58
回答 1查看 181关注 0票数 -2
代码语言:javascript
复制
SELECT t1.HighestFunds, t2.lowestFunds
from
   (select FundAmount as HighestFunds 
    from Convergence_Dataset
    order by FundAmount
    DESC LIMIT 3) t1,
   (select FundAmount as lowestFunds
    from Convergence_Dataset
    order by FundAmount ASC
    LIMIT 3 ) t2;

期望3 HighestFunds和3 lowestFunds来自Convergence_Dataset.FundAmount,而不是得到3行列(HighestFunds,lowestFunds),而是得到9行。FYI,我正在使用。(数据库)

EN

回答 1

Stack Overflow用户

发布于 2022-01-07 08:41:01

我想你想在这里询问一下:

代码语言:javascript
复制
(SELECT FundAmount FROM Convergence_Dataset ORDER BY FundAmount DESC LIMIT 3)
UNION ALL
(SELECT FundAmount FROM Convergence_Dataset ORDER BY FundAmount LIMIT 3)
ORDER BY FundAmount;

请注意,如果您的表有少于6项记录,则同一基金金额可以报告为最高金额和最低金额。

我们还可以使用ROW_NUMBER (或RANK)实现这一点:

代码语言:javascript
复制
WITH cte AS (
    SELECT FundAmount,
           ROW_NUMBER() OVER (ORDER BY FundAmount) rn1,
           ROW_NUMBER() OVER (ORDER BY FundAmount DESC) rn2
    FROM Convergence_Dataset
)

SELECT FundAmount
FROM cte
WHERE rn1 <= 3 OR rn2 <= 3
ORDER BY FundAmount;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70618476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档