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如何写呢,

解决方案 »

  1.   

    有两个问题需要楼主确认:
    一 两个表之间用什么来关联
    二 判断用户数的口径是什么
    三 age_desc中怎么都是一样的,和前面的最大值和最小值似乎没有关系
    判断条件‘非女性,年纪不到50’,都可以在where子句中进行限制。剩下的就是依据age_desc进行分组了,我认为是用到count ,sum,avg的聚合函数
      

  2.   


    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
      

  3.   

    非女性.....擦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