Функция SQL во всех строках с использованием параметра строки - PullRequest
0 голосов
/ 25 июня 2018

У меня есть таблица, в которой есть 3 столбца, которые мне нужны: Name, Id и ParentId. Я хотел бы узнать, сколько детей у Id, что потребует от меня пройти через каждый ряд.

Вот что у меня есть:

CREATE TEMPORARY FUNCTION numChildren(givenId INT64)
  RETURNS INT64
  AS ((SELECT count(*) FROM `playground.table` WHERE ParentId = givenId));

SELECT numChildren(Id) OVER() as Test FROM `playground.table`

Точная ошибка, которую я получаю: Error: Function USER_DEFINED_FUNCTIONS:NUMCHILDREN does not support an OVER clause at [5:8].

Я хочу пройти через каждую строку, передать Id в функцию и затем вернуть количество строк, которые имеют Id в качестве ParentId.

Правильно ли я поступаю? Должен ли я использовать API-интерфейсы для выполнения такого запроса?

1 Ответ

0 голосов
/ 25 июня 2018

Просто удалите OVER(), как показано ниже

CREATE TEMPORARY FUNCTION numChildren(givenId INT64)
RETURNS INT64
  AS ((SELECT count(*) FROM `playground.table` WHERE ParentId = givenId));

SELECT numChildren(Id) as Test FROM `playground.table`  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...