• 【SAS ADVANCE】通过COUNT函数实现counting values及HAVING子句


    一、 COUNT函数
             在实际统计应用中,需要计算观测值出现的次数,这项功能可以通过COUNT函数来实现,它有下面三种形式和功能:
    form you used 返回值 例子
    COUNT(*) 整个表或组的行数   select count(*) as Count
    COUNT(column) 当参数中所选定的列没有缺失值时,输出表或者组中该变量的行数   select count(jobcode) as Count
    COUNT(DISTINCT column) 该列中distinct values的行数   select count(distinct jobcode) as Count
     

    【备注】:

        1. COUNT summary function仅仅count非缺失值,而忽略缺失值。若用户需要计入缺失值,则考虑NMISS函数;

        2. COUNT summary function是唯一一个允许用户使用星号(*)作为参数的summary函数;

        3. 若在PROC SQL后面加上GROUP BY子句,则输出每一个group的行数;

        4. 若COUNT指定的参数列中含有缺失值,PROC SQL会将缺失值看作是一类,这可能导致unexpected results.

    二、HAVING子句

              在前面我们已经展示了如何通过GROUP BY子句来group数据,例如下面这个例子,这个例子输出一个16行、两列的table,即每一类job code的组内salary平均值。

    proc sql;
        select jobcode,
                  avg(salary) as AvgSalary  format=dollar11.2
            from sasuser.payrollmaster
           group by jobcode;

            

    【SUPPOSE】

           用户想要select only a subset of groups for your query output,也就是说通过一个条件分别筛选每组的数据来输出,这就可以通过在GOURP BY后面加上一个HAVING子句来实现。实际上,HAVING子句的功能与WHERE子句的功能类似,但是WHERE子句只能用于individual rows,而不能放在GROUP BY后面。例如:

    proc sql;
        select jobcode,
                  avg(salary) as AvgSalary format=dollar11.2
         from sasuser.payrollmaster
        group by jobcode
        having avg(salary)>56000;

    【备注】 若用户省去GROUP BY子句,而query code中包含HAVING子句,则HAVING子句和summary函数将整个表看做是一个group,功能与where子句一样。

  • 相关阅读:
    WPF学习笔记2——WPF子线程更新UI
    WPF学习笔记1——VS2019新建WPF程序
    Asp.Net Core学习笔记3—— .NET Core SDK
    Asp.Net Core学习笔记2—— IIS部署
    Asp.Net Core学习笔记1—— 静态页面
    NGUI带翻页的滑动列表拓展
    用Lua的协程实现类似Unity协程的语句块
    Lua模除运算的大坑
    数据结构和算法总结(三):A* 寻路算法
    Unity3D学习(十一):关于UI销毁后图集仍然无法释放问题的解决办法
  • 原文地址:https://www.cnblogs.com/chenyn68/p/3916344.html
Copyright © 2020-2023  润新知