如何筛选BigQuery表中col_1、col_2、col_3值不一致的行
BigQuery筛选col_1、col_2、col_3值不全相同的行
你可以通过以下两种方式实现需求:
方法一:直接列值比较
通过判断任意两列是否不相等,筛选出三个值不全相同的行:
SELECT * FROM `你的项目名.你的数据集名.你的表名` WHERE col_1 != col_2 OR col_1 != col_3;
逻辑说明:只要col_1与col_2不相等,或者col_1与col_3不相等,就意味着三个列的值不可能完全一致,符合筛选条件。
方法二:利用数组去重统计
将三个列的值放入数组,统计去重后的元素数量,若数量大于1则表示值不全相同:
SELECT * FROM `你的项目名.你的数据集名.你的表名` WHERE (SELECT COUNT(DISTINCT val) FROM UNNEST([col_1, col_2, col_3]) val) > 1;
逻辑说明:把三个列的值转为数组后展开,统计去重后的元素个数,个数大于1说明存在不同的值,即三个列不全相同。
内容的提问来源于stack exchange,提问作者eng2019
相关产品推荐
相关产品推荐

