(sql teradata)在一列中具有重复值,达到下面显示的输出

发布于 2025-02-11 12:44:19 字数 762 浏览 2 评论 0原文

原始表

列1第2列第3列
12019-03-09 13:03:59.0002019-03-09 13:33:12.000
22019-03-09 13:33:33:12.000 2019-03-09-09 13:33:33:33:19.000
22019-03-09 13:33:19.0002019-08-09 01:07:21.000

输出(从第一个重复行中获取第2列的值,第二副重复行的列3值):

列1列2第3列
12019-03-09 13:03:59.0002019-03-09 13:33:12.000
22019-03-09 13:33:33:12.0002019-08-08-09 01:07:21.000:21.000

Original Table

Column 1Column 2Column 3
12019-03-09 13:03:59.0002019-03-09 13:33:12.000
22019-03-09 13:33:12.0002019-03-09 13:33:19.000
22019-03-09 13:33:19.0002019-08-09 01:07:21.000

Output (Getting the value of column 2 from the first duplicate row and the value of column 3 from the second duplicate row):

Column 1Column 2Column 3
12019-03-09 13:03:59.0002019-03-09 13:33:12.000
22019-03-09 13:33:12.0002019-08-09 01:07:21.000

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

捎一片雪花 2025-02-18 12:44:19

您可以使用Row_number()之类的窗口函数来识别您想要在结果集中的行。例如,如果您想根据第2栏和第2列选择最新记录,则可以做类似的事情:

SELECT *
FROM (
    SELECT Column1,
           column2,
           column3,
           ROW_NUMBER() OVER (PARTITION BY Column1 
                                 ORDER BY column2 DESC, column3 DESC) AS RN
    FROM Table_Name) t
WHERE t.RN = 1

You can use window functions like row_number() to identify the row that you want to be in your result set. For example if you want to pick the latest record based on column2 and column2, you can do something like this:

SELECT *
FROM (
    SELECT Column1,
           column2,
           column3,
           ROW_NUMBER() OVER (PARTITION BY Column1 
                                 ORDER BY column2 DESC, column3 DESC) AS RN
    FROM Table_Name) t
WHERE t.RN = 1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文