oralce二个表关联查询的小问题,在线等
oralce中,有二个表
年纪表 d_age
age_id sub1_id min_value max_value age_desc sub1_desc
1 1 6 10 6-15岁 6-10岁
2 2 11 15 6-15岁 11-15岁
用户资料表
dw_user
cust_id gender age deposit owe
1 女 7 100.0 200
2 男 21 150.25 0
现需:
据上面的二个表,编写sql查询语句,列出符合条件(非女性,年纪不到50)的age_desc 组其用户数,
deposit 汇总值及平均值,要求查询结果含下面的数据
age_desc描述
此组内的用户数
此组内的depoist汇总值
此组内的deposit平均值
显示结果示例
6-15岁 20 300 76
请问,这sql如何写呢,
------解决方案--------------------有两个问题需要楼主确认:
一 两个表之间用什么来关联
二 判断用户数的口径是什么
三 age_desc中怎么都是一样的,和前面的最大值和最小值似乎没有关系
判断条件‘非女性,年纪不到50’,都可以在where子句中进行限制。剩下的就是依据age_desc进行分组了,我认为是用到count ,sum,avg的聚合函数
------解决方案--------------------
SELECT B.AGE_DESC,SUM(A.DEPOSIT),AVG(A.DEPOSIT)
FROM DW_USER A,D_AGE B
WHERE A.AGE BETWEEN B.MIN_VALUE AND B.MAX_VALUE
AND A.AGE<50
GROUP BY B.AGE_DESC
------解决方案--------------------非女性.....擦
SELECT B.AGE_DESC,SUM(A.DEPOSIT),AVG(A.DEPOSIT)
FROM DW_USER A,D_AGE B
WHERE A.AGE BETWEEN B.MIN_VALUE AND B.MAX_VALUE
AND A.AGE<50
AND A.GENDER != '女'
GROUP BY B.AGE_DESC
------解决方案--------------------建议提类似问题的时候,最好能把建表语句和数据插入同时提供,这样会更方便大家对你的问题作答