Нет соответствующей подписи для оператора> для типов аргументов: STRING, INT64. Поддерживаемые подписи: ЛЮБАЯ> ЛЮБАЯ в BigQuery - PullRequest
0 голосов
/ 17 июня 2020

Я подсчитываю количество баллов в рейтинге для каждого пользователя в bigquery. Но мой столбец рейтинга в таблице относится к строковому типу данных. Итак, когда я запускаю свой запрос, он возвращает ошибку, которая, как мне кажется, связана с типами данных:

 No matching signature for operator > for argument types: STRING, INT64. Supported signatures: ANY > ANY

Псевдокод похож на: если рейтинг <0, то считать, если рейтинг> 10, затем посчитайте

SELECT 
    User_ID, 
COUNT(CASE WHEN Rating < 0 THEN 1 ELSE 0 END) AS rating_below_1, 
  COUNT(CASE WHEN Rating > 0 THEN 1 ELSE 0 END) as rating_above_10 
FROM
    table
GROUP BY User_ID;

1 Ответ

0 голосов
/ 17 июня 2020

Используйте countif():

SELECT User_ID, 
       COUNTIF(Rating < '0') AS rating_below_1, 
       COUNTIF(Rating > '10') as rating_above_10 
FROM table
GROUP BY User_ID;

Вы также можете использовать safe_cast():

SELECT User_ID, 
       COUNTIF(SAFE_CAST(Rating as INT64) < 0) AS rating_below_1, 
       COUNTIF(SAFE_CAST(Rating as INT64) > 10) as rating_above_10 
FROM table
GROUP BY User_ID;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...