如何在 BigQuery 中进行不等式连接?

Tjo*_*rie 3 google-bigquery

我希望<在 a 中使用JOIN,但出现错误:

错误:ON 子句必须是 AND of = 每个表中一个字段名称的比较,所有字段名称都以表名称为前缀。

询问:

select
  o1.order_number,
  o1.datetime,
  LAST(o2.datetime),

from spree.orders_unique as o1
join spree.orders_unique as o2
  on o1.order_number = o2.order_number
    and o1.datetime < o2.datetime
group by o1.order_number, o1.datetime
Run Code Online (Sandbox Code Playgroud)

我将如何做到这一点?

Pen*_*m10 6

您可以在此处对此问题投票/加星:https : //code.google.com/p/google-bigquery/issues/detail?id=39

您需要使用CROSS JOIN+ aWHERE子句来运行不等式

select
  o1.order_number,
  o1.datetime,
  LAST(o2.datetime),

from spree.orders_unique as o1
CROSS JOIN spree.orders_unique as o2
where o1.order_number = o2.order_number
    and o1.datetime < o2.datetime
group by o1.order_number, o1.datetime
Run Code Online (Sandbox Code Playgroud)

请注意,CROSS JOIN EACH如果此查询耗尽资源,您可能需要使用