0

パラメータとしてUDFに渡される各テーブルの「DatePartition」というフィールドの最大値を見つけるUDFを作成しようとしています。作成した UDF は次のようになります。

CREATE TEMP FUNCTION maxDatePartition(x STRING) AS ((
  SELECT MAX(DatePartition) FROM x WHERE DatePartition >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(),INTERVAL 7 DAY)
));

しかし、次のエラーが表示されます。

テーブル名は次の形式で UDF に渡されます。

my-project.my-dataset.my-table

編集:コンテキストの追加:昨日のデータで毎朝更新する複数のテーブルがあります。テーブルの更新が予想より遅れることがあるため、ユーザーが各テーブルの最新データをすばやく確認できるビューを作成しています。これを行うには、これらすべてのテーブルの MAX(DatePartition) を 1 つのステートメントで計算する必要があります。テーブルのリストは別のテーブルに保存されますが、時々変更されるため、ハードコードすることはできません。

4

1 に答える 1