【问题标题】:PostgreSQL query with UNIQUE values returned based on condition基于条件返回唯一值的 PostgreSQL 查询
【发布时间】:2021-08-05 07:04:45
【问题描述】:

这是一个来自 PostgreSQL 的表示例。 我正在学习 SQL 查询,但找不到任何东西可以帮助我通过这个。

我正在努力实现的是:

当 tdate >='2020-01-13 00:00:01.757000' 时返回 WNR 的 UNIQ(DISTINCT) 值

WNR     tdate                       T1  T2  T3
2   '2020-01-06 00:05:23.229000'    8   18  15
2   '2020-01-06 00:05:23.725000'    11  4   7
2   '2020-01-06 00:05:31.578000'    19  12  6
3   '2020-01-13 00:00:01.655000'    9   9   3
3   '2020-01-13 00:00:01.757000'    5   11  16
3   '2020-01-13 00:00:05.778000'    16  17  16
4   '2020-01-20 00:00:11.925000'    18  13  4
4   '2020-01-20 00:00:12.177000'    18  3   15
4   '2020-01-20 00:00:12.694000'    7   12  7
5   '2020-01-27 00:00:04.860000'    19  3   14
5   '2020-01-27 00:00:05.056000'    14  18  8
5   '2020-01-27 00:00:05.107000'    18  7   14

预期结果应该是 3,4,5

谢谢!

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    要在 Postgresql 中选择不同的值,您可以使用 DISTINCT 子句。

    来自Postgresql documentation:SELECT DISTINCT 从结果中消除重复行。 SELECT DISTINCT ON 消除与所有指定表达式匹配的行。 SELECT ALL(默认)将返回所有候选行,包括重复行。 (参见下面的 DISTINCT 子句。)

    SELECT DISTINCT WNR
    FROM table_name
    WHERE tdate >='2020-01-13 00:00:01.757000';
    

    【讨论】:

    • 我真的不知道我在做什么并且没有工作......奇怪,我使用了相同的DISTINCT......谢谢,它返回了我需要的东西,所以谢谢你的回答!
    • 欢迎您@Num3illia!请记住选择最能回答您的问题的答案,以便将问题标记为已回答。
    猜你喜欢
    • 1970-01-01
    • 2021-06-01
    • 2016-05-15
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多