mysql – 如何将行转换为BigQuery / SQL中包含大量数据的列?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 如何将行转换为BigQuery / SQL中包含大量数据的列?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1116字,纯文字阅读大概需要2分钟。
内容图文
![mysql – 如何将行转换为BigQuery / SQL中包含大量数据的列?](/upload/InfoBanner/zyjiaocheng/893/077f9e05849345efb95316a45f9cfa48.jpg)
我在将BigQuery(15亿行)中的大量数据表从行转换为列时遇到问题.我可以弄清楚如何在硬编码时使用少量数据来完成它,但这个数量很大.表的快照如下所示:
————————–
| CustomerID特征值|
————————–
| 1 A123 3 |
| 1 F213 7 |
| 1 F231 8 |
| 1 B789 9.1 |
| 2 A123 4 |
| 2 U123 4 |
| 2 B789 12 |
| .. .. .. |
| .. .. .. |
| 400000 A123 8 |
| 400000 U123 7 |
| 400000 R231 6 |
————————–
所以基本上大约有400,000个不同的customerID有3000个功能,并不是每个customerID都有相同的功能,所以有些customerID可能有2000个功能,而有些有3000个.我想得到的最终结果表是每行显示一个不同的customerID,并且有3000列显示所有功能.像这样:
CustomerID Feature1 Feature2 … Feature3000
因此,某些单元格可能缺少值.
任何人都知道如何在BigQuery或SQL中执行此操作?
提前致谢.
解决方法:
STEP #1
在下面的查询中,用表的真实名称替换yourTable并执行/运行它
SELECT 'SELECT CustomerID, ' +
GROUP_CONCAT_UNQUOTED(
'MAX(IF(Feature = "' + STRING(Feature) + '", Value, NULL))'
)
+ ' FROM yourTable GROUP BY CustomerID'
FROM (SELECT Feature FROM yourTable GROUP BY Feature)
因此,您将获得一些将在下一步中使用的字符串!
STEP #2
从第1步获取字符串,然后将其作为查询执行
输出是您询问的Pivot
内容总结
以上是互联网集市为您收集整理的mysql – 如何将行转换为BigQuery / SQL中包含大量数据的列?全部内容,希望文章能够帮你解决mysql – 如何将行转换为BigQuery / SQL中包含大量数据的列?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。