postgresql不工作

postgresql不工作,sql,database,postgresql,select,postgresql-8.4,Sql,Database,Postgresql,Select,Postgresql 8.4,我使用以下代码从数据库中获取值: 但是当我编写这段代码时(测试以查看问题出在何处…),我注意到查询没有从数据库中提取不同的值: 这是一个问题 选择distinct(ca.id)作为id,acc.name作为accName,pIsu.name作为PARENTISU,sIsu.name作为subIsu, dv.domain_值作为contractType,acc.id作为accId,dvct.domain_值作为contractstatus 从合同\账户ca左加入业务\单位pIsu在ca.pare

我使用以下代码从数据库中获取值:

但是当我编写这段代码时(测试以查看问题出在何处…),我注意到查询没有从数据库中提取不同的值: 这是一个问题


选择distinct(ca.id)作为id,acc.name作为accName,pIsu.name作为PARENTISU,sIsu.name作为subIsu,
dv.domain_值作为contractType,acc.id作为accId,dvct.domain_值作为contractstatus
从合同\账户ca左加入业务\单位pIsu在ca.parent\U isu\U fk=pIsu.id
左连接业务单元sIsu在ca.sub\U isu\U fk=sIsu.id上
左联业务\单位账户在ca.account上\ fk=acc.id
在con.contracts\u account\u fk=ca.id上左连接con合同
左连接域\u值dv.id=con.contract\u type\u fk 左连接域\u在dvct.id=con.contract\u status\u fk上值dvct
其中ca.id不为空,且按ca.id在(4466079)订单中符合合同类型

此查询只是不返回我'Distinct Id'
我做错了什么?
我正在使用postgres 8.2

您是否正在尝试使用PostgreSQL的DISTINCT ON语法


即:缺少上的?

您的查询被解释为:

select distinct (ca.id) as id, acc.name as accName, . . .
这是一个标准的
distinct
语句。如果每个
ca.id
只需要一行,并且包含第一行的值(基于
order by
),则使用
distinct on

select distinct on (ca.id) ca.id, acc.name as accName, . . .

选择不同的col1、col2、col3…
将不会只返回不同的col1值,而是返回不同的col1+col2+col3组合