简体   繁体   English

在 Group By 调用后划分列

[英]Divide columns after Group By call

Coming from an R/Dplyr background, I've written the following code in R:来自 R/Dplyr 背景,我在 R 中编写了以下代码:

staff_time2 <- staff_time %>% 
  mutate(Dashboard_Group = "CC", Occupied_Time = HandleTime + AvailableTime) %>% 
  select(Date, Dashboard_Group, HandleTime, Occupied_Time, WorkingTime, LoginTime) %>% 
  mutate(Date = stringi::stri_sub(Date,1, -9), Date = mdy(Date)) %>% 
  filter(Date >= "2020-08-16" & Date <= "2020-08-22") %>% 
  group_by(Dashboard_Group) %>% 
  mutate(BusyTime = sum(HandleTime), OccupiedTime = sum(Occupied_Time), 
         WorkTime = sum(WorkingTime), Login = sum(LoginTime)) %>% 
  ungroup() %>% 
  mutate(Occupancy = BusyTime/OccupiedTime, Utilization = WorkTime/Login ) 

Now I am trying to do the same thing in SQL on Google Big Query.现在我试图在 Google Big Query 上的 SQL 中做同样的事情。 I've accomplished it with two separate queries:我已经通过两个单独的查询完成了它:

Query 1:查询 1:

SELECT  
'Contact Center' AS Dashboard_Group, 
sum((HandleTime + AvailableTime)) AS Occupied_Time,
sum(WorkingTime) AS Working_Time, 
sum(LoginTime) AS Login,
sum(HandleTime) AS BusyTime,
FROM `DATABASE.tblStaffTime`
WHERE Date BETWEEN "2020-08-16" AND "2020-08-22"
GROUP BY Dashboard_Group;

Query 2:查询 2:

SELECT 
(BusyTime/Occupied_Time) AS Occupancy,
(Working_Time/Login) AS Utilization,
FROM `DATABASE.occupancy_and_utilization_1`;

Query 2 simply takes the results from Query 1 and divides two of the columns.查询 2 只是从查询 1 中获取结果并划分其中的两列。 Here are the results from Query 1:以下是查询 1 的结果:

![在此处输入图片说明

I just want to divide BusyTime by Occupied_Time and Working_Time by Login .我只想将BusyTimeOccupied_TimeWorking_TimeLogin划分。 How can I combine these into one query?如何将这些合并为一个查询?

I just want to divide BusyTime by Occupied_Time and Working_Time by Login .我只想将BusyTimeOccupied_TimeWorking_TimeLogin划分。

You can repeat the sum() s (or use a subquery or CTE).您可以重复sum() s(或使用子查询或 CTE)。 Consider:考虑:

SELECT  
    'Contact Center' AS Dashboard_Group, 
    sum(HandleTime + AvailableTime) AS Occupied_Time,
    sum(WorkingTime) AS Working_Time, 
    sum(LoginTime) AS Login,
    sum(HandleTime) AS BusyTime,
    sum(HandleTime) / sum(HandleTime + AvailableTime) as Occupancy,
    sum(WorkingTime) / sum(LoginTime) as Utilization
FROM `DATABASE.tblStaffTime`
WHERE Date BETWEEN '2020-08-16' AND '2020-08-22'
GROUP BY Dashboard_Group;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM