MIN() MAX() BigQuery - 意外行为
Posted
技术标签:
【中文标题】MIN() MAX() BigQuery - 意外行为【英文标题】:MIN() MAX() BigQuery - Unexpected behaviour 【发布时间】:2021-09-30 00:18:12 【问题描述】:查询结果
SELECT
Type
, val
, MIN(val) over (partition by Type) as min_val
, MAX(val) over (partition by Type) as max_val
FROM tabA
给出意外的输出
Type val min_val max_val
1 A -52.50 -50.00 -64.00
2 A -50.00 -50.00 -64.00
3 A -64.00 -50.00 -64.00
4 A -58.50 -50.00 -64.00
5 B -66.00 -35.33 -75.33
6 B -73.00 -35.33 -75.33
7 B -35.33 -35.33 -75.33
8 B -56.33 -35.33 -75.33
9 B -44.33 -35.33 -75.33
10 B -75.33 -35.33 -75.33
11 B -57.00 -35.33 -75.33
12 B -69.00 -35.33 -75.33
其中 min&max 是相反的。对此有什么可能的解释吗?
【问题讨论】:
Bigquery 适用于 MAX 和 MIN,我认为这只是您感到困惑,因为所有内容都是负数,因此最大值看起来“较低”,但请记住,在负数中,数字越小,数字越大. 已排序,问题是 'val' 列存储为字符串而不是 FLOAT64,因为它应该是...... 【参考方案1】:该值未以数字类型存储。大查询也可以排序字符串,这就是这里所做的。
【讨论】:
以上是关于MIN() MAX() BigQuery - 意外行为的主要内容,如果未能解决你的问题,请参考以下文章
如何从跨两个 DATE 列的 INNER JOIN 创建 MIN 和 MAX 日期列,其中每个 DATE 列来自单独的表 BigQuery
BigQuery:写入查询结果时使用 bigquery 作业的意外行为