zoukankan      html  css  js  c++  java
  • SAS学习笔记

    项目需要,最近研究SAS,来完成项目中的评估等功能,小小心得。

    之前的项目图标都是用弼杰来完成的,可一个功能完成不了,所以引入了SAS,

    看了下SAS环境里面自带的图形实例,确实很强大,而且安装SAS步骤繁复,需要小心再小心。

    今天在写SAS代码的时候发现了一个奇怪的现象,SAS和oracle有些标示符是通用的有些好像不可以。

    今天的问题主要是group by的问题

    问题描述:

    有一个比例的表CAOJIE-rate

    deptname TYPENAME PUR1 PUR2 PUR3 PUR4 PUR5 PUR6

    湖北 A320 1.1000 0.0000 0.0000 0.0000 0.0000 0.0000
    湖北 A320 0.0000 1.1000 0.0000 0.0000 0.0000 0.0000
    湖北 A320 0.0000 0.0000 1.1000 0.0000 0.0000 0.0000
    湖北 A320 0.0000 0.0000 0.0000 1.1000 0.0000 0.0000
    湖北 A320 0.0000 0.0000 0.0000 0.0000 1.1000 0.0000
    湖北 A320 0.0000 0.0000 0.0000 0.0000 0.0000 1.1000
    天津 B737 0.0000 0.0000 0.0000 1.1000 0.0000 0.0000
    天津 B737 0.0000 0.0000 1.1000 0.0000 0.0000 0.0000
    天津 B737 0.0000 1.1000 0.0000 0.0000 0.0000 0.0000
    天津 B737 1.1000 0.0000 0.0000 0.0000 0.0000 0.0000
    天津 B737 0.0000 0.0000 0.0000 0.0000 1.1000 0.0000
    天津 B737 0.0000 0.0000 0.0000 0.0000 0.0000 1.1000
    西南 A320 0.0000 0.0000 0.0000 1.1000 0.0000 0.0000
    西南 A320 0.0000 0.0000 1.1000 0.0000 0.0000 0.0000
    西南 A320 0.0000 1.1000 0.0000 0.0000 0.0000 0.0000
    西南 A320 1.1000 0.0000 0.0000 0.0000 0.0000 0.0000
    西南 A320 0.0000 0.0000 0.0000 0.0000 1.1000 0.0000
    西南 A320 0.0000 0.0000 0.0000 0.0000 0.0000 1.1000
    西南 A340 0.0000 0.0000 1.1000 0.0000 0.0000 0.0000
    西南 A340 0.0000 1.1000 0.0000 0.0000 0.0000 0.0000
    西南 A340 1.1000 0.0000 0.0000 0.0000 0.0000 0.0000
    西南 A340 0.0000 0.0000 0.0000 1.1000 0.0000 0.0000
    西南 A340 0.0000 0.0000 0.0000 0.0000 1.1000 0.0000
    西南 A340 0.0000 0.0000 0.0000 0.0000 0.0000 1.1000

    现在我通过group by语句可以把各个公司的比例

    select t.deptname,
    t.typename,
    sum(t.pur1),
    sum(t.pur2),
    sum(t.pur3),
    sum(t.pur4),
    sum(t.pur5),
    sum(t.pur6)
    from CAOJIE_RATE t
    group by t.deptname,/*and */t.typename

    结果如下

    天津 B737 1.1 1.1 1.1 1.1 1.1 1.1
    西南 A320 1.1 1.1 1.1 1.1 1.1 1.1
    西南 A340 1.1 1.1 1.1 1.1 1.1 1.1
    湖北 A320 1.1 1.1 1.1 1.1 1.1 1.1

    ORACLE里面是不支持分组字段中间用and连接,而SAS里面既支持and又支持,但两种情况的结果是截然不同的

    ,的情况结果和上面结果一样,代码如下

    proc sql;
    create table transfer.up_f_rate3 as
    select deptname,typename, sum(pur1) as fur1,sum(pur2) as fur2,sum(pur3) as fur3,sum(pur4) as fur4,sum(pur5) as fur5,sum(pur6) as fur6
    from transfer.up_f_rate
    group by deptname,typename;
    quit;

    and的情况,加不加group by结果一样,如下

    proc sql;
    create table transfer.up_f_rate3 as
    select deptname,typename, sum(pur1) as fur1,sum(pur2) as fur2,sum(pur3) as fur3,sum(pur4) as fur4,sum(pur5) as fur5,sum(pur6) as fur6
    from transfer.up_f_rate
    group by deptname and typename;
    quit;

    ORACLE是个分外妖娆的女人,她总能勾起你的欲望,去驾驭她
  • 相关阅读:
    【SQL基础】三种类别语句
    【安装eclipse, 配置java环境教程】 编写第一个java程序
    【c++错误】类的语法错误 error c2533:constructors not allowed a return type(构造函数不允许返回一个类型)
    【经典算法大全】收集51种经典算法 初学者必备
    【费式搜寻法】
    【插补搜寻法】
    【基数排序(桶排序)】
    【字串核对】
    【老鼠走迷宫二】
    【稀疏矩阵】
  • 原文地址:https://www.cnblogs.com/caojie0432/p/3049720.html
Copyright © 2011-2022 走看看