Выберите строки с несколькими значениями в столбце SQL BigQuery - PullRequest
0 голосов
/ 16 июня 2020

У меня есть фрейм данных, который я хочу сгруппировать по c столбцам, а затем выбрать только строки с несколькими значениями (> 1) в столбце FieldID_distinct. Цель состоит в том, чтобы найти отдельный FieldID с одинаковыми DateTime, SerialNumber, geometry, FarmName, FieldName.

Мой запрос

select DateTime, SerialNumber, geometry, FarmName, FieldName,
ARRAY_AGG(DISTINCT FieldID) AS FieldID_distinct
from `xxx.yyy.zzz`
group by 1,2,3,4,5
order by DateTime ASC

Я пробовал

where FieldID_distinct> 2   

и

having FieldID_distinct> 2  

но не удалось.

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Вы можете просто подсчитать значения в предложении having:

select DateTime, SerialNumber, geometry, FarmName, FieldName,
       ARRAY_AGG(DISTINCT FieldID) AS FieldID_distinct
from `xxx.yyy.zzz`
group by 1, 2, 3, 4, 5
having count(distinct FieldID) > 2
order by DateTime ASC;
1 голос
/ 16 июня 2020

для Oracle вы должны использовать функцию count (), имеющую count (FieldID_duplicate)> 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...