我有以下查询产生以下输出。我试图在查询中添加一个名为百分比利用率的列,该列由公式计算(计数/总计数)。例如,设备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
任何帮助都将不胜感激。
答案 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