簡體   English   中英

如何在PostgreSQL中使用列值

[英]how to use a column value in postgresql

order_item_id   order_status   weight
158871745        "delivered"       0.3
158032756        "delivered"       0.3
158871745        "return"          0.5

我想找出相同order_item_id的重量之間的差異

訂單狀態

我想要輸出像

 order_item_id   order_status  weight   error 
    158871745     "return"      0.5      0.2
select t1.weight-t2.weight from table as 't1' join table as 't2' on t1.order_item_id=t2.order_item_id where t1.order_status!=t2.order_status;

其中tabletable的實際名稱。

一種方法使用窗口函數:

select t.*,
       (case when min(order_status) over (partition by order_item_id) <>
                  max(order_status) over (partition by order_item_id)
             then max(weight) over (partition by order_item_id) - 
                  min(weight) over (partition by order_item_id)
        end) as weightdiff
from table t;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM