【问题标题】:how to list booking ref code and names of passengers in bookings with 3 or more passengers together with sql如何在有 3 名或更多乘客的预订中与 sql 一起列出预订参考代码和乘客姓名
【发布时间】:2021-01-09 07:49:01
【问题描述】:

这里是数据集'ticket'

我需要检索 book_ref 列表并在与 3 名或更多乘客一起预订的乘客中命名乘客。

我尝试将结果存储在现有表 booking_code 中

INSERT INTO booking_code
SELECT book_ref, passenger_name
FROM bookings.ticket
GROUP BY book_ref, passenger_name
/*looking for br have 2 airport
 */
HAVING COUNT( * ) >2;

但结果是 book_ref 和乘客姓名的 2 个空列 我认为我没有正确使用“计数”。

如何修改代码,结果会是这样?

【问题讨论】:

  • 为什么989F9B在结果集中?
  • 可能其他 989F9B 在结果集中的某处

标签: sql postgresql datagrid


【解决方案1】:

你似乎想要窗口函数:

SELECT t.book_ref, t.passenger_name
FROM (SELECT t.*, COUNT(*) OVER (PARTITION BY book_ref) as book_ref_cnt
      FROM bookings.ticket t
     ) t
WHERE book_ref_cnt > 2;

这会返回原始数据中超过 2 名乘客的预订。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-27
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多