• 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语法分类
    SQL语法入门
    数据库的基本对象
    数据库基础
    数据库概述
    设计模式之备忘录模式
    设计模式之State模式
    设计模式之装饰模式
    简单工厂模式
    初识C#设计模式
  • 原文地址:https://www.cnblogs.com/caojie0432/p/3049720.html
Copyright © 2020-2023  润新知