使用一组固定值范围的累计计数创建视图

时间:2015-07-24 23:55:36

标签: google-bigquery

我想在这张桌子上创建BQ View:

  

MYTABLE
  id |值
  s1 | 21个
  s2 | 31个
  s3 | 71

当值时,View需要计算上述每一行(id),在10个固定里程碑的每一个中

mytable的10个里程碑行的结果视图将是:

  

milestoneValue |计数
  100 | 3
  90 | 3(所有s1 s2 s3)
  80 | 3
  70 | 2(s1,s2)
  60 ..
  30 | 1
  20 | 1
  10 | 1

我没有找到任何合适的函数来计算它。我可以在mytable中的原始数据上添加10个二进制标志作为列,我可以使用SUM,但是没有看到将其转换为10行里程碑视图的方法。 我试过了:

SELECT  id, value,   
IF(value <= 10 , 1, 0) as M10,   
IF(value <= 20 , 1, 0) as M20,    
 ...   
IF(value <= 90 , 1, 0) as M90,   
IF(value <= 100 , 1, 0) as M100    
FROM mytable ;  

帮助表示感谢, 感谢

1 个答案:

答案 0 :(得分:1)

SELECT bucket, SUM(word_count>bucket)
FROM [publicdata:samples.shakespeare] a
CROSS JOIN (
  SELECT bucket FROM (SELECT 10 bucket), (SELECT 20 bucket), (SELECT 30 bucket), (SELECT 40 bucket)
) b
GROUP BY bucket

results