[英]How to filter multiple values using BigQuery
我有一个包含数字和值的 BigQuery 表。 每个数字都有几个值。 我想获得没有负值的数字列表。
SELECT 1 as id, 10 as number, 0.2 as value
UNION ALL
SELECT 1, 10, 0.3
UNION ALL
SELECT 1, 10, 0.4
UNION ALL
SELECT 1, 10, 0.4
UNION ALL
SELECT 1, 11, 0.3
UNION ALL
SELECT 1, 11, -0.3
UNION ALL
SELECT 1, 11, 0.1
UNION ALL
SELECT 1, 12, 0.83
UNION ALL
SELECT 1, 12, 0.16
UNION ALL
SELECT 1, 12, 2.3
UNION ALL
SELECT 1, 12, 0.3
在这种情况下,我只需要获得数字 10 和 12,因为数字 11 的一个值为负数。 我知道如何使用EXCEPT
语句来实现它。 也许有一些更有效的方法,因为原始表有超过 7000 万行。
您可以在此处使用聚合方法:
SELECT number
FROM yourTable
GROUP BY number
HAVING COUNT(CASE WHEN value < 0 THEN 1 END) = 0;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.