問題タブ [bigquery-standard-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
116 参照

google-bigquery - BigQuery エラー「View X は自己参照しています」

legacySQL から standardSQL に移行していますが、レガシーで機能していた比較的単純なクエリでエラーが発生します。

エラーは「View myproject.mydataset.vw_1 is self-referencing」です。

1 つのサブクエリ (エイリアス a) に左結合された 2 つのビュー (エイリアス b および c) があります。

vw_2 と vw_3 はどちらもそれぞれ 1 列 (Line_Item_ID) を返し、どちらも「myproject.mydataset.vw_1」から選択することに注意してください。この問題は、それぞれが同じビューを照会するこれら 2 つのビューに関係していると思われますが、標準ではなくレガシーで機能するのは奇妙に思えます。

テーブル エイリアス b またはテーブル エイリアス c への結合をコメント アウトすると、クエリが機能し、a.LineItemID が返されます。b と c の両方が結合されている場合にのみ、「ビュー X は自己参照しています」というエラーが発生します。

b と c への結合を、列名 Line_Item_ID を指定するこのようなサブクエリに置き換えようとしましたが、同じエラーが発生します。

vw_1 の定義は次のとおりです。日付分割テーブルをクエリすることに注意してください。このビューは、レガシー SQL のときに TABLE_DATE_RANGE を使用していました。