Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 计数函数:查询的结果_Sql_Postgresql_Group By_Count - Fatal编程技术网

Sql 计数函数:查询的结果

Sql 计数函数:查询的结果,sql,postgresql,group-by,count,Sql,Postgresql,Group By,Count,我对以下问题的一部分有疑问。提前感谢您的帮助。我很难想象这个“假”数据库表。我希望有人能帮我解释一下我的逻辑,看看它是否正确。如果有人能给我指出正确的方向那就太好了 关于: Sesame是一种为你周围的成年人提供在线课程和活动的方式 设想一个名为activities的数据库表。它有四列: 活动标识[int,非null] 活动\u提供程序\u id[整数,非空] 区域标识[int,可为空] 在[时间戳,非空] 问题:给定以下查询,您希望返回最高值和最低值的计数是什么?您希望哪些计数相同

我对以下问题的一部分有疑问。提前感谢您的帮助。我很难想象这个“假”数据库表。我希望有人能帮我解释一下我的逻辑,看看它是否正确。如果有人能给我指出正确的方向那就太好了

关于: Sesame是一种为你周围的成年人提供在线课程和活动的方式

设想一个名为
activities
的数据库表。它有四列:

  • 活动标识[int,非null]

  • 活动\u提供程序\u id[整数,非空]

  • 区域标识[int,可为空]

  • 在[时间戳,非空]

问题:给定以下查询,您希望返回最高值和最低值的计数是什么?您希望哪些计数相同?为什么?

select
     
    count(activity_id),
    
    count(distinct activity_provider_id),
    
    count(area_id),     
    count(distinct area_id),
    count(*)

    from activities
我的解决方案

最高值:
count(*)

推理:Count(*)函数返回SELECT语句返回的行数,包括NULL和重复行数

最低值:
count(不同的活动\u提供者\u id)

推理:减少每个区域每个活动的活动提供者*

相同:不确定-有人能告诉我正确的方向吗?

计数(*)
考虑表中的所有行,而
计数(某些列)
只计算
某些列的非空值

由于
activity\u id
是不可为空的列,因此以下表达式将返回相同的“最高”计数:

至于wich表达式返回剩余三个选项中的最低计数,实际上无法从问题中提供的信息确定。事实上,这取决于与活动提供者相比,这是更多还是更少的不同领域


如果表中的所有活动提供程序(对应区域)都不是空且唯一的,甚至存在一种所有表达式返回相同大小写的边缘情况。

您没有显示实际的查询。@GMB抱歉!我已经添加了实际的查询!谢谢你的帮助!
count(activity_id)
count(*)