SQL Postgres的比较相同的表数据

时间:2019-02-03 02:06:24

标签: sql postgresql

我有一张“收费”表,在此表中有一个ID,说明,价格和位置。 我想做的是生成一个查询,该查询将与表中的描述匹配,并为我提供一个地点的两个定价列。到目前为止,我能做的最好的事情就是给我两个位置之间的重复:

select charge1.description, charge1.price price1, charge2.price price2
from charge charge1 inner join
(
    select * from charge
) charge2
on LOWER(charge1.description) = LOWER(charge2.description) 
where charge1.id != charge2.id 
and charge1.location != charge2.location;

这将给出如下结果:

Description | price1 | price2
-----------------------------
burger      | 5      | 10
burger      | 10     | 5
steak       | 40     | 20
steak       | 20     | 40

我想要一个类似的结果

Description | price1 | price2
-----------------------------
burger      | 5      | 10
steak       | 40     | 20

1 个答案:

答案 0 :(得分:1)

这是您想要的吗?

console.log(!!'false')

我认为没有必要对select c1.description, c1.price as price1, c2.price as price2 from charge c1 inner join charge c2 on LOWER(c1.description) = LOWER(c2.description) where c1.id < c2.id and c1.location <> c2.location; 进行比较,但是如果没有示例数据,我不确定这是否成立。