BigQuery数据表中选取不同字段最小、最大日期值的相关问题咨询
BigQuery 取字段最小值/最大值实现方案

1. 全局取单字段的最小/最大值
直接使用BigQuery内置的MIN()、MAX()聚合函数即可,示例语句:
SELECT MIN(目标字段名1) AS 自定义最小值别名, MAX(目标字段名2) AS 自定义最大值别名 FROM `你的项目ID.你的数据集名称.你的表名称`;
2. 按类别分组取每组的最小/最大值
如果需要匹配你示例中的分组统计场景,增加GROUP BY子句指定分组维度即可:
SELECT 分组维度字段名, MIN(待统计字段名) AS 组内最小值, MAX(待统计字段名) AS 组内最大值 FROM `你的项目ID.你的数据集名称.你的表名称` GROUP BY 分组维度字段名;
3. 取最小/最大值对应的完整行数据
如果不仅需要聚合结果,还需要拿到最小/最大值对应的整条记录,使用窗口函数实现:
-- 取每个分组下值最小的整行数据,要取最大值就把ORDER BY后的ASC改为DESC SELECT * EXCEPT(rank_num) FROM ( SELECT *, ROW_NUMBER() OVER(PARTITION BY 分组维度字段名 ORDER BY 待排序字段名 ASC) AS rank_num FROM `你的项目ID.你的数据集名称.你的表名称` ) WHERE rank_num = 1;
内容的提问来源于stack exchange,提问作者Said
相关产品推荐
相关产品推荐

