[英]Do I need to download google service json file everytime I add sha key in firebase?
[英]How do I add a 'root element' to a json file
我做了一个 SQL 查询(使用 CTE 构建),结果是 6 个产品及其属性。 查询只是select * from output
结果如下表,列数多于下表:
|row | gender | prod_1| url_1 | prod_2 | url_2| ...
| 1 | male | nike| www.xy| adidas| www.ap| ...
| 2 | female | puma| www.zq| apple| www.ad| ...
当此表转换为 JSON 时,它看起来像这样:
[{
"gender": "male",
"product_1": "nike",
"url_1": "www.xy ",
"product_2": "puma",
...,
"gender": "female",
"product_1": "adidas",
"url_1": "www.xy ",
"product_2": "apple",
...,
}]
但是,我想按性别对结果进行分组,并使结果如下所示:
{
"male": {
"product_1": "nike",
"url_1": "www.xy",
"product_2": "adidas",
...,
}
"female": {
"product_1": "puma",
"url_1": "www.zq",
"product_2": "apple",
...,
}
}
所有不同的产品(+属性)都属于两个根元素。 有谁知道这个结果是否以及如何可能(通过查询?)。
由于 JSON object 的键应该是 Bigquery 中的列名,因此简单的解决方法是使用STRUCT ,如下所示:
WITH sample_table AS (
SELECT 'male' gender, 'nike' product_1, 'www.xy' url_1, 'puma' product_2, 'www.xyz' url_2
UNION ALL
SELECT 'female' gender, 'adidas' product_1, 'www.xy' url_1, 'apple' product_2, 'www.xyz' url_2
)
SELECT CASE gender
WHEN 'male' THEN TO_JSON_STRING(STRUCT((SELECT AS STRUCT t.* EXCEPT(gender)) AS male))
WHEN 'female' THEN TO_JSON_STRING(STRUCT((SELECT AS STRUCT t.* EXCEPT(gender)) AS female))
END AS json
FROM sample_table t;
SELECT CASE gender -- actually this CASE is not necessary cause it generates same output without it
WHEN 'male' THEN (SELECT AS STRUCT t.* EXCEPT(gender))
WHEN 'female' THEN (SELECT AS STRUCT t.* EXCEPT(gender))
END AS items
FROM sample_table t;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.