GROUP BY和catx计算2列,给出不同的输出

Mac*_*ook 3 sql sas

我必须找到2个变量组合的明显计数.我使用以下2个查询来查找计数:

select count(*) from 
(   select V1, V2 
    from table1
    group by 1,2
) a
Run Code Online (Sandbox Code Playgroud)

select count(distinct catx('-', V1, V2)) 
from table1
Run Code Online (Sandbox Code Playgroud)

从逻辑上讲,上述两个查询都应该给出相同的计数,但我得到的计数不同.注意

  • V1和V2都是整数
  • 两个变量都可以有空值,但我的表中没有空值
  • 没有负面价值

知道为什么我会得到不同的输出吗?哪个是查找2列或更多列的不同组合计数的最佳方法?

谢谢.

Lon*_*ish 7

运行第一个sql代码时,SAS日志给出了答案.使用'group by'需要汇总函数,否则会被忽略.因此,计数将返回总行数,而不是组合的2个变量的不同计数.只需将count(*)添加到子查询中,您将获得两种方法相同的答案.

select count(*) from 
(   select V1, V2, count(*) 
    from table1
    group by 1,2
) a
Run Code Online (Sandbox Code Playgroud)