栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Bigquery中的Select从行数据动态创建列

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Bigquery中的Select从行数据动态创建列

以下是BigQuery!

请注意:您对输出列名称的期望不正确!
列名不能以数字开头-因此在下面的示例中-我将使用id_1,id_2和id_3代替1、2和3

SELECt  SUM(CASE WHEN id = 1 THEN 1 END) AS id_1,  SUM(CASE WHEN id = 2 THEN 1 END) AS id_2,  SUM(CASE WHEN id = 3 THEN 1 END) AS id_3FROM YourTable

上面的示例假定您事先知道您的ID,并且ID很少,因此为每个ID手动写几行带有SUM(…)的行就没什么大不了的

如果不是这种情况,您可以先通过运行下面的查询来以编程方式生成上面的查询

SELECt 'SELECT ' +    GROUP_CONCAT_UNQUOTED(      'SUM(CASE WHEN id = ' + STRING(id) + ' THEN 1 END) AS id_' + STRING(id)   )    + ' FROM YourTable'FROM (  SELECt id FROM (    SELECt * FROM YourTable GROUP BY id ORDER BY id)

结果-您将获得如下所示的字符串

SELECt SUM(CASE WHEN id = 1 THEN 1 END) AS id_1,SUM(CASE WHEN id = 2 THEN 1 END) AS id_2,SUM(CASE WHEN id = 3 THEN 1 END) AS id_3 FROM YourTable

因此,现在只需将其复制并粘贴到查询编辑器中并运行即可



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/431693.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号