sql-server - 如何划分两个查询然后分组?
问题描述
我需要划分两个查询,但我需要保存“分组依据”类别。通过我的查询,我只得到值及其笛卡尔积。
Select m2.regionname, m2.indicatorname CAST( m2.a2Value as float) /
m1.a1Value
from(
select r.name as regionname , ina.name as indicatorname, sum(a.value) as
a1Value
from Region as "r"
left join city_region as "cr" on r.region_id = cr.region_id
left join Office as "o" on cr.city_id = o.city_id
left join Assets as "a" on o.office_id = a.office_id
left join Indicators as "i" on a.indicator_id = i.indicator_id
left join IndicatorNames as "ina" on i.indicator_name_id =
ina.indicator__name_id
where a.month between '01-01-2019' and '31-01-2019'
group by r.name, ina.name
) m1 join (
select r.name as regionname , ina.name as indicatorname, sum(a.value) as
a2Value
from Region as "r"
left join city_region as "cr" on r.region_id = cr.region_id
left join Office as "o" on cr.city_id = o.city_id
left join Assets as "a" on o.office_id = a.office_id
left join Indicators as "i" on a.indicator_id = i.indicator_id
left join IndicatorNames as "ina" on i.indicator_name_id =
ina.indicator__name_id
where a.month between '01-02-2019' and '27-02-2019'
group by r.name, ina.name) m2 on m1.regionname = m2.regionname
我需要得到 4 行和 3 列,其中包括 region_name、indicator_name 和浮点值。但我只能得到带有值的表
0,0482248520710059
0,0565972222222222
0,0665680473372781
0,078125
0,705627705627706
0,974025974025974
1,01875
1,03550295857988
1,18343195266272
1,21527777777778
1,38888888888889
1,40625
15,1515151515152
17,3160173160173
21,875
25
但这是错误的。
解决方案
ON
子句中的这个条件:
on m1.regionname = m2.regionname
将加入许多不相关的行。
您必须设置另一个条件,例如:
on m1.regionname = m2.regionname and m1.indicatorname = m2.indicatorname
推荐阅读
- sql - Oracle SQL:计算给定条目的属性出现的频率并选择出现次数最多的属性
- python - Python Youtube Web Scraper 无法正常工作
- angular - Angular >= 8 的内容安全策略
- c++ - 为 cl.exe (Visual Studio Code) 指定命令行 C++ 版本
- excel - For 循环耗时太长 - Excel VBA
- mysql - 如果任一 mysql 脚本未能执行,则中止后续 mysql 脚本执行
- excel - Excel Power Pivot:使用 DAX 在两个表中为客户匹配日期后的下一个非空白项目
- charts - 是否可以在 ECharts 中制作双栈图
- git - 如何使用 az-cli 设置分支权限?
- authentication - tomcat 和安全约束:url 模式不起作用