SQL:我如何按顺序列出所有前2个订单的客户ID:第一个订单是帽子,第二个订单是太阳镜? [关闭]
Posted
技术标签:
【中文标题】SQL:我如何按顺序列出所有前2个订单的客户ID:第一个订单是帽子,第二个订单是太阳镜? [关闭]【英文标题】: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] 【发布时间】:2019-03-06 11:27:37 【问题描述】:我是 SQL 新手,我正在尝试找出查询: 如何按以下顺序准确列出所有前 2 个订单的客户 ID:第一个订单是帽子,第二个订单是太阳镜?
谢谢!
【问题讨论】:
样本数据集和预期输出将有助于获得及时的答案 到目前为止你尝试过什么?你被困在哪里了?可以分享一下表结构和示例数据吗? 【参考方案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 表中选择以上是关于SQL:我如何按顺序列出所有前2个订单的客户ID:第一个订单是帽子,第二个订单是太阳镜? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章