zoukankan      html  css  js  c++  java
  • day 21 求贫困户

    create table sdata.dbo. t_access_times(username varchar(255),month varchar(255),salary int)
    insert into sdata.dbo.t_access_times values ('A','2016-01',5)
    insert into sdata.dbo.t_access_times values ('A','2016-01',15)
    insert into sdata.dbo.t_access_times values ('B','2016-01',5)
    insert into sdata.dbo.t_access_times values ('A','2016-01',8)
    insert into sdata.dbo.t_access_times values ('B','2016-01',25)
    insert into sdata.dbo.t_access_times values ('A','2016-01',5)
    insert into sdata.dbo.t_access_times values ('A','2016-02',4)
    insert into sdata.dbo.t_access_times values ('A','2016-02',6)
    insert into sdata.dbo.t_access_times values ('B','2016-02',10)
    insert into sdata.dbo.t_access_times values ('B','2016-02',5)
    insert into sdata.dbo.t_access_times values ('A','2018-01',5)
    insert into sdata.dbo.t_access_times values ('A','2018-01',15)
    insert into sdata.dbo.t_access_times values ('B','2018-01',5)
    insert into sdata.dbo.t_access_times values ('A','2018-01',8)
    insert into sdata.dbo.t_access_times values ('B','2018-01',25)
    insert into sdata.dbo.t_access_times values ('A','2018-01',5)
    insert into sdata.dbo.t_access_times values ('A','2018-02',4)
    insert into sdata.dbo.t_access_times values ('A','2018-02',6)
    insert into sdata.dbo.t_access_times values ('B','2018-02',10)
    insert into sdata.dbo.t_access_times values ('B','2018-02',5)
    insert into sdata.dbo.t_access_times values ('A','2017-01',10)
    insert into sdata.dbo.t_access_times values ('A','2017-01',18)
    insert into sdata.dbo.t_access_times values ('B','2017-01',5)
    insert into sdata.dbo.t_access_times values ('A','2017-01',18)
    insert into sdata.dbo.t_access_times values ('B','2017-01',15)
    insert into sdata.dbo.t_access_times values ('A','2017-01',35)
    insert into sdata.dbo.t_access_times values ('A','2017-02',44)
    insert into sdata.dbo.t_access_times values ('A','2017-02',65)
    insert into sdata.dbo.t_access_times values ('B','2017-02',18)
    insert into sdata.dbo.t_access_times values ('B','2017-02',5)

    select * from sdata.dbo. t_access_times
    --1、第一步,先求个用户的月总金额
    select
    username
    ,month
    ,sum (salary) salary_sum
    into sdata.dbo. t_access_timestest
    from sdata.dbo. t_access_times
    group by username
    ,month
    order by username asc,month asc

    --2.将月总金额表 自己连接 自己连接,然后求某月之前的和
    drop table sdata.dbo.t_access_T
    select * into sdata.dbo.t_access_T from sdata.dbo. t_access_timestest

    select
    a.username
    ,a.month
    ,a.salary_sum -- 当月累计的钱
    ,SUM(b.salary_sum) until_money --截止到当月的报销的钱数
    from sdata.dbo. t_access_timestest a
    left join sdata.dbo.t_access_T b
    on a.username =b.username
    and a.month >=b.month
    group by a.username
    ,a.month
    ,a.salary_sum

    --3、第三步,从上一步的结果中
    --进行分组查询,分组的字段是a.username a.month
    --求月累计值: 将b.month <= a.month的所有b.salary求和即可


    create table sdata.dbo.requst
    (
    xh nvarchar(255) --序号
    ,xian nvarchar(255) --县(市、区、旗)
    ,xiang nvarchar(255) --乡(镇)
    ,xzc nvarchar(255) --行政村
    ,zrc nvarchar(255) --自然村
    ,hbh nvarchar(255) --户编号
    ,rbh nvarchar(255) --人编号
    ,xm nvarchar(255)--姓名
    ,zjh nvarchar(255) --证件号码
    ,zjh2 nvarchar(255) --证件号码
    ,rs nvarchar(255) --人数
    ,yhzgx nvarchar(255) --与户主关系
    ,mz nvarchar(255)--民族
    ,whcd nvarchar(255) --文化程度
    ,zxszk nvarchar(255) --在校生状况
    ,jkzk nvarchar(255) --健康状况
    ,ldjn nvarchar(255) --劳动技能
    ,wgzk nvarchar(255) --务工状况
    ,wgsj nvarchar(255) --务工时间(月)
    ,cjdbyl nvarchar(255) --参加大病医疗
    ,tpsx nvarchar(255) --脱贫属性
    ,pkhsx nvarchar(255) --贫困户属性
    ,zyzpyy nvarchar(255) --主要致贫原因
    ,wyh nvarchar(255) --危房户
    ,ysaq nvarchar(255) --饮水安全
    ,qskn nvarchar(255) --饮水困难
    ,rjcsr nvarchar(255) --人均纯收入
    ,tel nvarchar(255) --联系电话
    )

    select * from sdata.dbo.requst

    --将前100行的数据的这些字段插入到sdata.dbo.jiaotong ,将这些人定为买车的人
    select top 100
    XM
    ,zjh
    ,'身份证' zhjlx
    into sdata.dbo.jiaotong from sdata.dbo.requst
    select * from sdata.dbo.requst

    --已经有车还来申报的
    select a.*
    --into sdata.dbo.havecar
    from sdata.dbo.requst a
    left join sdata.dbo.jiaotong b
    on a.xm =b.xm
    and a.zjh = b.zjh
    where b.xm is not null


    --真正的贫困户,没有车的 两种写法
    --第一种:except
    select * from sdata.dbo.requst
    except
    select * from sdata.dbo.havecar

    --第二种
    select a.*
    ,substring(a.zjh,7,4) born_year
    ,DateName(year,GetDate()) - cast (substring(a.zjh,7,4) as int) year_age --今年多大
    into sdata.dbo.pingkun_test
    from sdata.dbo.requst a
    left join sdata.dbo.jiaotong b
    on a.xm =b.xm
    and a.zjh =b.zjh
    where b.xm is null

    --根据三个维度统计人数总和
    select
    CONVERT(varchar(7),GETDATE(),120) date
    ,xian
    ,xiang
    ,xzc
    ,SUM(cast (rs as int )) sum_ppeople
    into pdata.dbo.per_people
    from sdata.dbo.pingkun_test
    group by xian
    ,xiang
    ,xzc


    insert into pdata.dbo.per_people
    select
    '2016-08' date
    ,xian
    ,xiang
    ,xzc
    ,SUM(cast (rs as int )) sum_ppeople
    --into pdata.dbo.per_people
    from sdata.dbo.pingkun_test
    group by xian
    ,xiang
    ,xzc

    --同比率
    select
    b.date dat_now
    ,b.sum_per_people now_sum_per_people
    ,a.date dat_last
    ,a.sum_per_people last_sum_per_people
    ,CONVERT(varchar(7),GETDATE(),120) date
    ,(b.sum_per_people-a.sum_per_people*1.0)/a.sum_per_people *100.0 rate
    from (select
    date
    ,sum(sum_ppeople) sum_per_people
    from pdata.dbo.per_people
    where date='2016-08'
    group by date) a
    left join (
    select
    date
    ,sum(sum_ppeople) sum_per_people
    from pdata.dbo.per_people
    where date='2017-08'
    group by date) b
    on a.date <> b.date




    --截取几位的字符
    select substring('anowenciwnc',2,3)
    --获取当前年
    select DateName(year,GetDate()) as '年'


    --取大于3的
    select
    username
    ,month
    ,COUNT(1) dtale_sum
    from sdata.dbo. t_access_times
    group by username
    ,month
    having COUNT(1)>=3

  • 相关阅读:
    仅Firefox中链接A无法实现模拟点击以触发其默认行为
    读jQuery之十二(删除事件核心方法)
    读jQuery之十(事件模块概述)
    读jQuery之十五
    事件模块的演变(9)
    Chrome(12)中使用getComputedStyle获取透明度(opacity)返回字符串不同于其它浏览器
    各浏览器对click方法的支持差异
    IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素,子元素依然能显示bug
    Node.js: Python not found exception due to nodesass and nodegyp
    高等数学 工专 柳重堪
  • 原文地址:https://www.cnblogs.com/simly/p/9568724.html
Copyright © 2011-2022 走看看