我有一组不同买家对不同卖家的购买数据,如下所示:
buyerid || sellerid || orderid || timestamp
John123 || SellerABC || 123-abc-x1z || 26/07/2019
John123 || SellerABC || 123-abc-i9h || 28/07/2019
John123 || SellerABC || 123-abc-y16 || 28/07/2019
John123 || SellerDEF || 123-def-u13 || 30/07/2019
Bill456 || SellerABC || 456-abc-o34 || 02/08/2019
Bill456 || SellerABC || 456-abc-l3q || 09/08/2019
Bill456 || SellerABC || 456-abc-j5d || 10/08/2019
Bill456 || SellerDEF || 456-def-i61 || 11/08/2019
我希望能够在 SQL 中创建一个视图,以检索买家第一次从第二个卖家下订单的时间戳。如果没有来自第二个卖家的第一个订单,那么应该有一个空条目。结果视图应如下所示:
buyerid || first_order_second_seller_timestamp
John123 || 30/07/2019
Bill456 || 11/08/2019
我想会有一些疯狂的分区和子查询来实现这一点,但任何帮助将不胜感激!目前我只能使用标准 SQL 函数检索第一个和最后一个订单:
SELECT
"buyerid"
, "min"("timestamp") "first_order_timestamp"
, "max"("timestamp") "last_order_timestamp"
FROM
default.order_table
GROUP BY "buyerid"