微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 SQL 7 中的子查询中添加 COUNT 后,将 SUM 聚合添加到 VARCHAR

如何解决在 SQL 7 中的子查询中添加 COUNT 后,将 SUM 聚合添加到 VARCHAR

由于我的数据集有数百万行并且上传到 Power BI 很慢,我想我会通过计数然后对 PCR_ID 求和来聚合它们。我通常只是这样做:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

SELECT distinct  R.PCR_ID AS PreHospital_Report,CAST(LEFT(E.eTimes_03,10) AS DATE) As DateofCall,D.dAgency_02 as Agency_Id,D.dAgency_03 as GMR_Agency,Case When R.eResponse_24 = '2224019' Then 'No Lights or sirens Used' Else R.eResponse_24 End As NO_LIGHTS_OR_sirenS,Case When R.eResponse_05 = '2205001' Then '911 Call' Else R.eResponse_05 End As  [911_Call],Count (*) as Count
From 
eResponse R

join eTimes E on R.PCR_ID = E.PCR_ID
left join dAgency D on R.PCR_ID = D.PCR_ID


Where R.eResponse_24 = '2224019' AND R.eResponse_24 IS NOT Null AND R.eResponse_24 NOT LIKE '%NV=%' AND R.eResponse_24 NOT LIKE '%PN=%' AND
R.eResponse_05 = '2205001' AND R.eResponse_05 IS NOT Null AND R.eResponse_05 NOT LIKE '%NV=%' AND R.eResponse_05 NOT LIKE '%PN=%'
AND D.dAgency_03 IS NOT NULL and D.dAgency_03 NOT LIKE '%NV=%'
ANd E.eTimes_03 Is not null AND E.eTimes_03 NOT LIKE '%NV=%' AND E.eTimes_03 NOT LIKE '%PN=%' AND E.eTimes_03 >= '2019-01-01' 

GROUP BY GROUPING SETS((R.PCR_ID,E.eTimes_03,R.eResponse_24,R.eResponse_05,D.dAgency_02,D.dAgency_03 ),())

得到这些结果

DateofCall  Agency_Id   GMR_Agency  PreHospital_Report  NO_LIGHTS_OR_sirenS 911_Call    Count
2021-07-30  S27-50088   Monterey ESO    001bd3ffbc4d4706b3d7ad7500eb339c    No Lights or sirens Used    911 Call    1
2021-07-17  AMBV296 SEATTLE ESO 00905c6ada2f423aa497ad6800b6f964    No Lights or sirens Used    911 Call    1
2021-07-16  AMBV296 SEATTLE ESO 009726c7a89d4e5fa26aad67008a2b40    No Lights or sirens Used    911 Call    1
2020-06-27  S63-50289   City Ambulance  01aae0adf8524e9f9ae7dcbdda4213e7    No Lights or sirens Used    911 Call    8
2021-07-28  364 LONGMONT ESO    05733c9ec55041669182ad7201425d2e    No Lights or sirens Used    911 Call    1
2021-07-13  364 LONGMONT ESO    05766d426e6b416892d7ad6400de16da    No Lights or sirens Used    911 Call    1
2021-07-27  AMBV296 SEATTLE ESO 06a95ab7950f4589888dad72008d8ab2    No Lights or sirens Used    911 Call    1
2021-07-29  106 COLORADO SPGS ESO   06f065fd19c94f95bf9dad74000a331c    No Lights or sirens Used    911 Call    1
2020-06-28  S63-50289   City Ambulance  06ffc6c038ae4112a0e817b86326e931    No Lights or sirens Used    911 Call    8
2021-07-31  364 LONGMONT ESO    087621d3a801439db3f7ad7600fec680    No Lights or sirens Used    911 Call    1
2021-07-29  106 COLORADO SPGS ESO   0de3f44093634c03aec0ad7400e4f1c4    No Lights or sirens Used    911 Call    1
2020-06-13  S63-50289   City Ambulance  0e1d2cce8b2849279334d2139a040430    No Lights or sirens Used    911 Call    8
2021-07-24  AMBV296 SEATTLE ESO 0f037833628e47378eaead6f00ba5d47    No Lights or sirens Used    911 Call    1
2020-07-01  S63-50289   City Ambulance  1294c54f1db847bf9f9cfbc78038efc5    No Lights or sirens Used    911 Call    8

问题是有超过 400 万条记录,我正在寻找一种通过聚合来提高速度和性能方法。我正在寻找 PCR_ID 的总和,它是一个 VARCHAR,但仍然需要其他列在我的 Power BI 报告中进行一些建模。有什么建议么?我知道如何获得总和/计数,但还需要所有其他列。也许 GMR 机构的小计会有所帮助,但我该怎么做? sum(PCR_ID) 其中 GMR_Agency 不是按 GMR_Agency 排序的空组按 GMR_Agency 排序?我的目标是在 Power Bi 中进行分子/分母计数,并显示在 911 呼叫期间使用安全灯的每个机构的百分比。

我试过这样的事情,但它表明它找不到 a.PCR_ID 列(压缩我的代码来测试它)我为我的子查询创建了一个 a 别名来计数,但它不会接受连接 on a.PCR_ID = E.PCR_ID

Select
  R.PCR_ID,SUM(a.cnt),10) AS DATE),D.dAgency_03 as GMR_Agency

From eTimes E
Inner Join (
  Select Count(PCR_ID) as Cnt
  from eResponse
Group by PCR_ID) a
  on a.PCR_ID = E.PCR_ID
left Join eResponse R ON  E.PCR_ID = R.PCR_ID
left Join dAgency D  ON  E.PCR_ID = D.PCR_ID

Where E.eTimes_03 > '07/29/2021'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。