【发布时间】:2018-09-17 20:22:57
【问题描述】:
如果我们使用下面的函数会返回哪一行?
MAX (NAME)
我们在名称列中有以下两行
1 ABC
2 ABC
【问题讨论】:
标签: teradata
如果我们使用下面的函数会返回哪一行?
MAX (NAME)
我们在名称列中有以下两行
1 ABC
2 ABC
【问题讨论】:
标签: teradata
两者都不是。将返回一个与任一行无关的聚合,而是Max(Name) 值,这显然必须是ABC,因为它是唯一可用的值:
CREATE VOLATILE TABLE test
(
f1 INTEGER,
f2 CHAR(3)
) PRIMARY INDEX (f1) ON COMMIT PRESERVE ROWS;
INSERT INTO test VALUES (1, 'ABC');
INSERT INTO test VALUES (2, 'ABC');
SELECT MAX(f2) FROM test;
DROP TABLE test;
只返回ABC
你可以这样想。如果我在白板上写下数字2,让你大声说出哪个最大,你会说“2”;问“你选了哪个'两个'?”是愚蠢的。
【讨论】:
SELECT MAX(ID) FROM test;一样
Max() 将命中并获取 2 并返回。
由于两个值相同且只有两行,当您尝试查找最大值时,您将得到输出为“ABC”
【讨论】: