SQL GROUP BY+HAVING聚合查询结果(11,11)对应X、Y值求解
本次查询用到的SQL代码如下:
R1(a,b,c,d,e,f) AS ( SELECT MIN(R.A1),MAX(R.A2),1, COUNT(R.A4),2+SUM(R.A5),0 FROM R GROUP BY R.A6 HAVING SUM(R.A3)>2 ), R2(a,b,c,d,e,f) AS ( SELECT 1,0, MAX(R.A3),SUM(R.A4), COUNT(R.A5),2+SUM(R.A6) FROM R GROUP BY R.A2 HAVING SUM(R.A1)<3 ), R3 AS ( SELECT *FROM R1 UNINON SELECT * FROM R2 ) SELECT SUM(d),SUM(e) FROM R3
问题
基于上述SQL代码,求解能让最终查询结果为(11,11)的X、Y取值。
个人推导过程
- 从R1推导:
我认为COUNT(R.A4)的计算结果为3+X2+SUM(R.A5) 的计算结果为 2 + Y - 从R2推导:
SUM(R.A4) = 1+X COUNT(R.A5)=8+Y - 初步计算结论
最终执行SELECT SUM(d), SUM(e) FROM R3的计算结果为4+X和8+Y,算出X=7、Y=3时结果为(11,11),但不确定该结论是否正确,感觉推导过程存在错误。
补充待验证推导思路
GROUP BY R.A2
HAVING SUM(R.A1)<3 // 查看A1列的值,0+0=0小于3,因此筛选出A1值为0对应的A2列数据,最终得到2行,COUNT(R.A5)=2+Y。
内容的提问来源于stack exchange,提问作者ek.Nik
相关产品推荐
相关产品推荐

