MIN [analytic]
返回 窗口内某个表达式的最小值。返回值的类型与表达式数据类型相同。
分析函数 MIN()
和 MAX()
可以使用布尔值运行。MAX()
函数可以执行 布尔数据类型 或可隐式转换为布尔值的值。如果至少一个输入值为真,则 MAX()
返回 t
(true)。否则,它返回 f
(false)。在同一场景中,如果所有输入值都为真,则 MIN()
函数返回 t
(true)。否则,它返回 f
。
行为类型
不可变语法
MIN ( expression ) OVER (
[ window-partition-clause ]
[ window-order-clause ]
[ window-frame-clause ] )
参数
示例
下面的示例显示了如何查询以确定员工年薪与马萨诸塞州最低年薪之间的偏差:
=> SELECT employee_state, annual_salary,
MIN(annual_salary)
OVER(PARTITION BY employee_state ORDER BY employee_key) min,
annual_salary- MIN(annual_salary)
OVER(PARTITION BY employee_state ORDER BY employee_key) diff
FROM employee_dimension
WHERE employee_state = 'MA';
employee_state | annual_salary | min | diff
----------------+---------------+------+------
MA | 1918 | 1204 | 714
MA | 2058 | 1204 | 854
MA | 2586 | 1204 | 1382
MA | 2500 | 1204 | 1296
MA | 1318 | 1204 | 114
MA | 2072 | 1204 | 868
MA | 2656 | 1204 | 1452
MA | 2148 | 1204 | 944
MA | 2366 | 1204 | 1162
MA | 2664 | 1204 | 1460
(10 rows)
以下示例显示了当您将 MIN
和 MAX
分析函数与布尔值一起使用时,它们之间的区别。该示例创建了一个包含两列的表,添加了两行数据,并显示了 MIN
和 MAX
的示例输出。
CREATE TABLE min_max_functions (emp VARCHAR, torf BOOL);
INSERT INTO min_max_functions VALUES ('emp1', 1);
INSERT INTO min_max_functions VALUES ('emp1', 0);
SELECT DISTINCT emp,
min(torf) OVER (PARTITION BY emp) AS worksasbooleanand,
Max(torf) OVER (PARTITION BY emp) AS worksasbooleanor
FROM min_max_functions;
emp | worksasbooleanand | worksasbooleanor
------+-------------------+------------------
emp1 | f | t
(1 row)