【问题标题】:SQL: How do I list all of customer ID that had their first 2 orders exactly in the sequence of: first order being hat, second order being sunglasses? [closed]SQL:我如何按顺序列出所有前2个订单的客户ID:第一个订单是帽子,第二个订单是太阳镜? [关闭]
【发布时间】:2025-12-03 13:35:01
【问题描述】:

我是 SQL 新手,我正在尝试找出查询: 如何按以下顺序准确列出所有前 2 个订单的客户 ID:第一个订单是帽子,第二个订单是太阳镜?

谢谢!

【问题讨论】:

  • 样本数据集和预期输出将有助于获得及时的答案
  • 到目前为止你尝试过什么?你被困在哪里了?可以分享一下表结构和示例数据吗?

标签: sql google-bigquery


【解决方案1】:

嗯,在 BigQuery 中,您可以执行以下操作:

select o.customerId
from orders o
group by o.customerId
having array_agg(o.product order by o.order_date asc limit 2) = array['hat', 'sunglasses'];

您没有指定数据的外观,但这应该可以让您了解一种方法。

【讨论】:

    【解决方案2】:

    你试试这样

    SELECT CustomerID, Product
    FROM Customers
    WHERE Productin ('Hat', 'sunglasses')
    order by Product Asc
    

    【讨论】:

    • 我不能 100% 确定解决方案,但您绝对应该从 Orders 表中选择而不是/以及从 Customer 表中选择
    最近更新 更多