gpt4 book ai didi

sql - GROUP BY 和 catx 的 2 列计数给出不同的输出

转载 作者:行者123 更新时间:2023-12-01 10:03:24 25 4
gpt4 key购买 nike

我必须找到 2 个变量组合的不同计数。我使用以下 2 个查询来查找计数:

select count(*) from 
( select V1, V2
from table1
group by 1,2
) a

select count(distinct catx('-', V1, V2)) 
from table1

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

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

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

谢谢。

最佳答案

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

select count(*) from 
( select V1, V2, count(*)
from table1
group by 1,2
) a

关于sql - GROUP BY 和 catx 的 2 列计数给出不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13492909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com