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