如何对一系列数据进行分组以在 GOOGLE BigQuery 中创建一个类别
Posted
技术标签:
【中文标题】如何对一系列数据进行分组以在 GOOGLE BigQuery 中创建一个类别【英文标题】:How to group a range of data to make a category in GOOGLE BigQuery 【发布时间】:2013-11-19 04:55:59 【问题描述】: Row |day |Prob
--------------------------
1 5 0.3
2 3 0.1
3 2 0.6
4 4 0.5
5 1 0.4
我想将第 1 天到第 3 天合并到一个类别,将第 4 天到第 5 天合并到另一个类别 怎么做?类别的概率不仅仅是简单地添加每天的概率。 当前代码:
SELECT day, SUM( new ) / SUM( new+ old ) **AS** Prob
FROM mydata
WHERE year > 2005 and ( day >=1 and day <=5)
GROUP by day;
【问题讨论】:
你能在这里给出你对给定数据的预期结果吗? 老实说,我不知道预期的结果应该是什么。比如说,在第 1 天,有 3 个新任务和 2 个旧任务。所以第一天选择一个旧任务的概率是 2/5。第2天:新1旧1,概率1/2;第 3 天:新 2 旧 3,概率 3/5。现在我想形成一个类别来显示从第 1 天到第 2 天选择旧任务的概率。所以我预计它是 (2+1+3)/(5+2+5)。 【参考方案1】:SEE SQL FIDDLE
从任务中选择“1”作为 CATEGOry,SUM(NEW_Task)/SUM(NEW_TASK+OLD_TASK) 作为 PROB
哪一天 1到3之间
联合
选择 '2' 作为 CATEGOry,SUM(NEW_Task)/SUM(NEW_TASK+OLD_TASK) AS PROB from task
4 点到 5 点之间的日期
根据我从您的问题中了解到的情况,我刚刚尝试了 Query。这是你想要达到的目标还是其他什么
【讨论】:
谢谢拉梅什!这正是我想要的!剩下的唯一问题是“UNION”不适用于 bigquery..我只能获得一个类别... 好的,我知道了。对于任何对如何在 BigQuery 中执行 UNION 感兴趣的人:***.com/questions/10644993/… 也可以使用CASE,见***.com/questions/15464574/…以上是关于如何对一系列数据进行分组以在 GOOGLE BigQuery 中创建一个类别的主要内容,如果未能解决你的问题,请参考以下文章