gpt4 book ai didi

postgresql - 如何不包括在 2 列中具有匹配值的行

转载 作者:行者123 更新时间:2023-11-29 14:31:49 25 4
gpt4 key购买 nike

我有一个包含 3 列的表格。我不想重复基于具有相同值的 2 列的行。

  |start_date(date)| end_date(date) |theDiff(integer)
---------------------------------------------------
|2018-05-14 | 2018-05-18 | 5 |
|2018-05-14 | 2018-05-18 | 10 |
---------------------------------------------------

预期输出:

  |start_date(date)| end_date(date) |theDiff(integer)
---------------------------------------------------
|2018-05-14 | 2018-05-18 | 5 |
---------------------------------------------------

我有很多这样的行,不希望它们重复。我只想添加他们的第一次出现。我一直希望它输出较低的差异。

最佳答案

如果我没理解错的话,您希望第一次出现所有不同的 (start_date, end_date)。

您可以使用 row_number() 函数,然后选择行号 = 1 的行。

with x as
(
select start_date, end_date, theDiff,
row_number() over (partition by start_date, end_date order by start_date) rn
from tbl
)
select start_date, end_date, theDiff
from x
where rn = 1;
start_date | end_date   | thediff:--------- | :--------- | ------:2018-05-14 | 2018-05-18 |       5

db<> fiddle here

您可以将 CTE 移动到 FROM 子句:

select start_date, end_date, theDiff
from
(
select start_date, end_date, theDiff,
row_number() over (partition by start_date, end_date order by start_date) rn
from tbl
) x
where rn = 1;

关于postgresql - 如何不包括在 2 列中具有匹配值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50616304/

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