动态计算Google BigQuery中的利用率百分比

时间:2016-08-10 20:02:59

标签: google-bigquery

我有以下查询产生以下输出。我试图在查询中添加一个名为百分比利用率的列,该列由公式计算(计数/总计数)。例如,设备D1的百分比利用率为220 /(220 + 322)* 100,设备D2的百分比利用率为322 /(220 + 322)* 100.如果Id只有一行,则利用率应为100%。 (例如:第三行)我想知道是否有办法在Google大查询中实现这一目标。

SELECT Id,Device,COUNT(*) AS count
FROM
TABLE_DATE_RANGE([db.table1],TIMESTAMP('2016-08-01'),TIMESTAMP('2016-08-10'))
WHERE Id = 331
GROUP BY Id,Device
ORDER BY Id

输出:

Row  Id  Device  Count   
 1  331   D1    220  
 2  331   D2    322  
 3  332   D4    550

预期产出:

Row  Id  Device  Count   Percentage utilisation
 1  331   D1    220         40
 2  331   D2    322         60
 3  332   D4    550         100

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

尝试以下

SELECT 
  Id, Device, COUNT(*) AS Count, 
  RATIO_TO_REPORT(Count) OVER(PARTITION BY Id) AS Utilisation
FROM TABLE_DATE_RANGE([db.table1],TIMESTAMP('2016-08-01'),TIMESTAMP('2016-08-10'))
GROUP BY Id, Device
ORDER BY Id