解决MaxCompute SQL count distinct多个字段的方法

简介: 按照惯性思维,统计一个字段去重后的条数我们的sql写起来如下: Distinct的作用是用于从指定集合中消除重复的元组,经常和count搭档工作,语法如下 COUNT( { [ DISTINCT ] expression ] | * } ) 这时,可能会碰到如下情况,你想统计同时有多列字段重复的数目,你可能会立马想到如下方法: select count( distinct col1 , col2 , col3 , .......) from table 但是,这样是有问题的,如果值包含空,那么我们的结果是什么呢?如果你实验过,正如你实验的一样,结果会比实际少。

按照惯性思维,统计一个字段去重后的条数我们的sql写起来如下:


Distinct的作用是用于从指定集合中消除重复的元组,经常和count搭档工作,语法如下

COUNT( { [ DISTINCT ] expression ] | * } )

这时,可能会碰到如下情况,你想统计同时有多列字段重复的数目,你可能会立马想到如下方法:

select count( distinct col1 , col2 , col3 , .......) from table

但是,这样是有问题的,如果值包含空,那么我们的结果是什么呢?如果你实验过,正如你实验的一样,结果会比实际少。

a     b   
1    null
2    x
1 null

count 结果为1;

因为MaxCompute count多列的时候,里面只要有一列为null,就忽略,不参加计算。

这个问题怎么解决?这里给出一个思路,先去重再count。

如,select count* from (select distinct a,b from table)

这样,count结果就和预期一致,结果为2;


新的一年开始了,欢迎您加入MaxCompute开发者社区,在新征程里与更多大数据开发者一起学习交流大数据技术。

搜索钉钉群号:11782920,或扫码加入
image

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
3月前
|
机器学习/深度学习 数据采集 算法
大数据分析技术与方法探究
在当今信息化时代,数据量的增长速度远快于人类的处理能力。因此,如何高效地利用大数据,成为了企业和机构关注的焦点。本文将从大数据分析的技术和方法两个方面进行探究,为各行业提供更好的数据应用方向。
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
大数据分析的技术和方法:从深度学习到机器学习
大数据时代的到来,让数据分析成为了企业和组织中不可或缺的一环。如何高效地处理庞大的数据集并且从中发现潜在的价值是每个数据分析师都需要掌握的技能。本文将介绍大数据分析的技术和方法,包括深度学习、机器学习、数据挖掘等方面的应用,以及如何通过这些技术和方法来解决实际问题。
49 2
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
99 1
|
25天前
|
SQL 存储 BI
sql server 2012远程链接的方法及步骤
sql server 2012远程链接的方法及步骤
17 1
|
1月前
|
SQL 关系型数据库 数据处理
详解SQL语句中的GROUP BY和聚合函数COUNT、SUM、AVG、MIN和MAX。
详解SQL语句中的GROUP BY和聚合函数COUNT、SUM、AVG、MIN和MAX。
16 0
|
1月前
|
SQL 存储 关系型数据库
MySQL 常用30种SQL查询语句优化方法
MySQL 常用30种SQL查询语句优化方法
69 0
|
2月前
|
SQL JSON 关系型数据库
sql如何获取字段里的json值
sql如何获取字段里的json值
|
2月前
|
SQL
Sql语法:字段不为空
Sql语法:字段不为空
|
2月前
|
大数据 Java 编译器
关于 Python 在 for 循环里处理大数据的一些推荐方法
关于 Python 在 for 循环里处理大数据的一些推荐方法
38 0
|
2月前
|
算法 关系型数据库 MySQL
浅谈postgre-sql uuid生成方法的细节
浅谈postgre-sql uuid生成方法的细节
23 0

相关产品

  • 云原生大数据计算服务 MaxCompute