SQL跨表查询以标识特定属性的汇总值

时间:2019-04-05 02:02:58

标签: sql postgresql

我正在尝试查询沿停靠,卸载并载有更多人的航线飞行的飞机上的可用座位。

我一直试图在表中查询,但是在访问其他查询表中的属性时,却遇到了单独的子查询中的问题,这些子查询不在其他子查询的范围内。可以通过WITH ___ AS查询吗?

这里的前两个表是我正在使用以希望产生期望结果的数据示例。 下方的第一个表格是一系列的连接路线,这些路线适用于在start_airport上飞机329在end_airport下飞机的乘客

 start_airport | end_airport
---------------+------------
            78 |          76
            78 |          76
            78 |          74
            77 |          76
            77 |          76
            77 |          75
            77 |          75
            77 |          75
            77 |          74
            77 |          74
            76 |          75
            76 |          75
            76 |          75
            76 |          75
            76 |          75
            76 |          74
            75 |          74
            75 |          74
            75 |          74
            75 |          74
            75 |          74

 airplane | airport_id | airplane_size
----------+------------+-------------
      329 |         78 |           67
      329 |         77 |           67
      329 |         76 |           67
      329 |         75 |           67
      329 |         74 |           67

我要针对此特定数据集生成的表格,其中会更新路线上每个停靠点的可用座位:

 airplane | airport_id | available_seating
----------+------------+------------------
      329 |         78 |               64
      329 |         77 |               57
      329 |         76 |               55
      329 |         75 |               59

1 个答案:

答案 0 :(得分:0)

您可以通过将else:中的开始和结束机场的总和集左加入来解决您的问题。 connections解析函数可以为给定表达式生成累积结果。

您唯一需要但尚未显示的是id列,该列指示停工顺序。我刚刚将SUM用作整数序列,如果有的话,它也可能是日期列。没有任何这样的列,就无法确定正在运行的SUM的方向。

ID

DEMO