开发者社区 问答 正文

子查询的函数变量是不承认

我想写一个函数,计算非null和非空字段的条目。

展开
收起
SONGYiiiD 2019-12-04 21:47:52 738 分享 版权
阿里云 AI 助理回答

要编写一个计算非NULL及非空字段条目的函数,您可以利用MaxCompute SQL中的聚合函数和条件表达式。这里提供一个简单示例,假设您有一个表your_table,并且想要统计其中某一列(例如column_name)非NULL及非空字符串的记录数。

您可以使用COUNT函数结合CASE WHEN条件语句来实现这一需求:

SELECT COUNT(CASE 
               WHEN column_name IS NOT NULL AND TRIM(column_name) != '' THEN 1 
               ELSE NULL 
             END) AS non_null_non_empty_count
FROM your_table;

这个查询的工作原理如下: - CASE WHEN column_name IS NOT NULL AND TRIM(column_name) != '' THEN 1:这部分检查每一行的column_name是否既不是NULL也不是空字符串(考虑到空格也可能被视作“空”)。如果满足条件,则返回1。 - ELSE NULL:如果不满足上述条件,则此行不计入计数,通过返回NULL实现。 - COUNT(...):最后,对所有返回的1进行计数,从而得到非NULL且非空字符串的总条目数。

请注意,根据您的实际需求,可能需要调整列名column_name以匹配您数据表中的具体字段。此外,如果您的数据中不会出现空格填充的“空”字符串,可以省略TRIM函数的使用。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: