我想从postgresql中的一个表中返回记录,当第1列中的一个不同值在第2列中分布在多个记录上时.

举个简单的例子:

表1:

column1 - column2
1 – 1
1 – 2
2 – 1
2 – 1 
3 - 3
4 - 5

返回:

1 - 1
1 - 2

有很多例子显示不同(例如这个),但我寻找非不同.

select distinct (column2, column1) my_distinct from table1;

推荐答案

这是一种很普通的方法,只是存在一个来判断那些在同一个列1的列2上有不同值的记录.

菲德尔:https://dbfiddle.uk/Zf9vTS9K

CREATE TABLE t (
  column1 INTEGER,
  column2 INTEGER
);

INSERT INTO t
  (column1, column2)
VALUES
  (1, 1),
  (1, 2),
  (2, 1),
  (2, 1),
  (3, 3),
  (4, 5);

select * 
  from t t1
 where exists
         (
           select 1
             from t t2
            where t1.column1 = t2.column1
              and t1.column2 <> t2.column2
         );

Sql相关问答推荐

表名数组

Select /过滤postgr中的树 struct

Trino/Presto sq:仅当空值位于组中第一个非空值之后时,才用值替换空值

用相同值更新行

Access中执行INSERT INTO查询时出现错误消息

在数据库中搜索列

数据库SQL-CTE命名空间(错误?)使用临时视图

Select 列组(按同一表格中的另一列分组)Laravel 10

如何在 golang squirrel lib 中添加 postgreSQL 的distinct on

日期逻辑(查找过go 90 天内的第一个匹配行)

如何计算两个非周期性时间序列+分组的重叠持续时间

在presto sql中解析带有区域的时间格式

如何在TSQL中编写此窗口查询

如何根据某个值在where子句中添加某个条件

SQL:如何从时间戳数据生成时间序列并计算不同事件类型的累计总和?

Set vs let vs 在snowflake中声明变量

具有日期时间条件的存储过程

PostgreSQL Select 具有两列的自引用

从 JSON 数组中移除对象

Snowflake SQL group-by 的行为不同,具体取决于列是按位置引用还是按别名引用