Как рассчитывать уникальные вхождения столбца в Big Query - PullRequest
0 голосов
/ 28 мая 2019

Учитывая таблицу, такую ​​как:

| ID | Value  |
|-------------|
| 1  | "some" |
| 1  | "some" |
| 1  | "value"|
| 2  | "some" |
| 3  | "some" |
| 3  | "value |
| 3  | "value |

Как подсчитать количество уникальных вхождений значения для каждого идентификатора?

Таким образом, вы получите таблицу, такую ​​как:

| ID | Value  | number |
|-------------|--------|
| 1  | "some" |   2    |
|    | "value"|   1    |
| 2  | "some" |   1    |
| 3  | "some" |   1    |
|    | "value |   2    | 

Я попытался использовать OVER(PARTITION BY ID order by Value) для разделения таблицы по идентификаторам и подсчета отдельных значений.Однако это подсчитывает количество уникальных происшествий, но затем складывает их вместе.В итоге я получаю таблицу типа:

| ID | Value  | number |
|-------------|--------|
| 1  | "some" |   2    |
| 1  | "some" |   2    |
| 1  | "value"|   3    |
| 2  | "some" |   1    |
| 3  | "some" |   1    |
| 3  | "value |   3    |
| 3  | "value |   3    |

Есть ли способ подсчета уникальных значений, как во втором примере, который я привел?

1 Ответ

2 голосов
/ 29 мая 2019

Ниже для BigQuery Standard SQL

#standardSQL
SELECT id, value, COUNT(1) number
FROM `project.dataset.table`
GROUP BY id, value

с результатом

Row id  value   number   
1   1   some    2    
2   1   value   1    
3   2   some    1    
4   3   value   2    
5   3   some    1    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...