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:第一个订单是帽子,第二个订单是太阳镜? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Oracle SQL 中的最后一个订单项

在 Pyspark 中列出保存顺序的数据框列

MYSQL 学习笔记记录整理之三:子查询

标识符错误的麻烦

SQL如何从所有客户中检索最后订购的2个列出的产品?

oracle 分析函数3