【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子句一样。

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

时间: 2024-10-10 13:42:13

【SAS ADVANCE】通过COUNT函数实现counting values及HAVING子句的相关文章

【SAS ADVANCE】Performing Advanced Queries Using PROC SQL

一.Objectives display all rows, eliminate duplicate rows, and limit the number of rows displayed subset rows using other conditional operators and caculated values enhance the formatting of query output Using summary functions, such as COUNT, with and

【SAS ADVANCE】Performing Queries Using PROC SQL

SQL: Structured Query Language 一.Objectives in this chapter: invoke the SQL procedure select columns define new columns specify the table(s) to read specify subsetting criteria order rows by values of one or more columns group results by values of on

TSql Count 函数三种写法介绍

Count常见的有三种写法,count(*),count(expression),count(column_name) Count(expression) ,count(column_name)计数的机制是:计算 expression,或表中column_name的值是否为NULL,如果为NULL则不计数,如果不是NULL则会计数. count(*),返回表中行的数目.Specifies that all rows should be counted to return the total nu

php count()函数用法 及其 一个坑

用法 count() 函数返回数组中元素的数目. count(array,mode); [mode] 0 - 默认.不计算多维数组中的所有元素. 1 - 递归地计算数组中元素的数目(计算多维数组中的所有元素). 坑 单纯的判断count($array)>0来判断数组是否存在是不严谨的因为有可能 $array = '';echo (count($array)); 输出1;

【SAS BASE】SCAN函数

1 [例子] 2 3 data a; 4 arg='ABC.DEF(X=Y)'; 5 word=scan(arg,3); 6 put word; 7 run;/*word:X=Y*/ 8 9 data b; 10 arg='ABC.DEF(X=Y)'; 11 word=scan(arg,-3); 12 put word; 13 run;/*word:ABC*/ 14 15 data c; 16 arg='ABC.DEF(X=Y)'; 17 word=scan(arg,-20); 18 put w

php count函数

最近被问到一个函数count 1.count("123456") 对应的输出是什么? 2.count(null) 对应的输出是什么? 以前没有认真的考虑,只是心里有一个印象那就是count()函数是计算php数组的个数的.后来下来仔细看了看手册,原来发现: 1.count函数是统计数组里所有元素的个数或者对象的属性的个数的,函数原型如下: int count(mixed $var[, $mode=COUNT_NORMAL); 对于对象,如果安装了SPL,可以通过Countable接口调

COUNT()函数的使用

COUNT函数 让我们能够数出在表格中有多少笔资料被选出来.它的语法是: SELECT COUNT("栏位名")        FROM "表格名" 举例来说,若我们要找出我们的示范表格中有几笔 store_name 栏不是空白的资料时,Store_Information 表格 store_name Sales Date Los Angeles $1500 Jan-05-1999 San Diego $250 Jan-07-1999 Los Angeles $300

[PHP源码阅读]count函数

在PHP编程中,在遍历数组的时候经常需要先计算数组的长度作为循环结束的判断条件,而在PHP里面对数组的操作是很频繁的,因此count也算是一个常用函数,下面研究一下count函数的具体实现. 我在github上有对PHP源码更详细的注解.感兴趣的可以围观一下,给个star.PHP5.4源码注解.可以通过commit记录查看已添加的注解. count int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] ) coun

C++ STL之count函数

谓词(predicate):是做某些检测的函数,返回用于条件判断的类型,指出条件是否成立. 总结: count : 在序列中统计某个值出现的次数 count_if : 在序列中统计与某谓词匹配的次数 count和count_if函数是计数函数,先来看一下count函数:count函数的功能是:统计容器中等于value元素的个数. 先看一下函数的参数:count(first,last,value); first是容器的首迭代器,last是容器的末迭代器,value是询问的元素. 可能我说的不太详细