gpt4 book ai didi

sql - 我们如何在不使用 union 子句的情况下使用 rownum 显示给定表的第一行和最后一行

转载 作者:行者123 更新时间:2023-12-04 08:16:54 26 4
gpt4 key购买 nike

样本输入

Name | Value | Timestamp
-----|-------|-----------------
One | 1 | 2016-01-01 02:00
Two | 3 | 2016-01-01 03:00
One | 2 | 2016-01-02 02:00
Two | 4 | 2016-01-03 04:00
期望输出


姓名
值(value)
最早的时间戳
最新时间戳



2
2016-01-01 02:00
2016-01-02 02:00


4
2016-01-01 03:00
2016-01-03 04:00


而不是使用 union 子句来显示第一行和最后一行。我们怎样才能显示它?
SELECT * FROM TABLE 
WHERE ROWNUM = 1
UNION ALL
SELECT * FROM TABLE
WHERE ROWNUM IN (SELECT MAX(ROWNUM) FROM TABLE);
请让我解决这个问题。提前致谢。

最佳答案

您似乎在描述聚合:

select name, max(value), min(timestamp), max(timestamp)
from t
group by name;
您的问题表明您可能需要最新值而不是最大值。如果是这样,请使用 first聚合函数:
select name,
max(value) keep (dense_rank first order by timestamp desc),
min(timestamp), max(timestamp)
from t
group by name;
first 的文档: https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/FIRST.html#GUID-85AB9246-0E0A-44A1-A7E6-4E57502E9238

关于sql - 我们如何在不使用 union 子句的情况下使用 rownum 显示给定表的第一行和最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65667106/

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