如何解决在 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 举报,一经查实,本站将立刻删除。