我需要创建一个视图,就像一些带有一些简单转换的表一样,我想确保特定列中的值不重复。 所以,让我们说这个表看起来像这样:
list2env
结果视图如下所示:
ID, ColumnA, ColumnB
-------------------
1 cars shirts
2 tvs dogs
1 fingers computers
那么,是否有一个等同于SELECT distint(ID),ColumnA,ColumnB?
什么是最有效的方法?
答案 0 :(得分:2)
以下是BigQuery Standard SQL
#standardSQL
WITH yourTable AS (
SELECT 1 AS id, 'cars' AS columnA, 'shirts' AS columnB UNION ALL
SELECT 2, 'tvs', 'dogs' UNION ALL
SELECT 1, 'fingers', 'computers'
)
SELECT r.*
FROM (
SELECT ARRAY_AGG(t ORDER BY columnA LIMIT 1)[OFFSET (0)] AS r
FROM yourTable t
GROUP BY id
)
-- ORDER BY id
注意:你应该有一些关于用手指选择汽车行的逻辑! 以上版本(作为示例)基于asc order
答案 1 :(得分:1)
如果您只想为每个ID添加任意行,请使用"uid"
:
"other": { ".validate": false }
或者您可以使用$user
技巧根据条件选择最新行。