具有重复行的Teradata MAX函数

具有重复行的Teradata MAX函数,teradata,Teradata,如果我们使用下面的函数,将返回哪个值?为什么 MAX(NAME='ABC'然后GENDER END时的大小写)作为SEX 表中有以下两行 GENDER NAME M ABC F ABC 以下是您可以在自己的系统中运行的测试(Teradata studio、SQL Assistant、Atanasuite、bteq或您使用的任何东西): 这将输出M 发生的情况是,在聚合之前,正在为列f1的所有行生

如果我们使用下面的函数,将返回哪个值?为什么

MAX(NAME='ABC'然后GENDER END时的大小写)作为SEX

表中有以下两行

GENDER        NAME
      M                ABC
      F                 ABC

以下是您可以在自己的系统中运行的测试(Teradata studio、SQL Assistant、Atanasuite、bteq或您使用的任何东西):

这将输出
M

发生的情况是,在聚合之前,正在为列
f1
的所有行生成一个中间结果集。一列被设置为
f1
中的任何值或NULL,具体取决于您的案例陈述:

中间结果集:

col1
-----
M
F
由于两行的
名称
都等于
ABC
,因此两行都返回一些内容。现在我们采用
Max()
,这是SQL操作顺序的下一步


两个值
M
F
的最大值为:
M
,因为
M
在字母表中较高(词典排序)

以下是您可以在自己的系统中运行的测试(Teradata studio、SQL Assistant、Atanasuite、bteq或您使用的任何系统):

这将输出
M

发生的情况是,在聚合之前,正在为列
f1
的所有行生成一个中间结果集。一列被设置为
f1
中的任何值或NULL,具体取决于您的案例陈述:

中间结果集:

col1
-----
M
F
由于两行的
名称
都等于
ABC
,因此两行都返回一些内容。现在我们采用
Max()
,这是SQL操作顺序的下一步


两个值
M
F
的最大值为:
M
,因为
M
在字母表中较高(词典排序)

它不是返回一行,而是返回一个值。是的..告诉我哪一个值可能与@santoshuplepatil的值相同,请在您的系统中自己运行这个。这将是一个简单的测试。答案是
M
,因为
M
大于
F
,而且我们的
ABC
都大于。那么,你的意思是它会给字母A-Z以1-26的顺序号吗?它不是返回一行,而是返回一个值。是的。告诉我@santoshuplepatil的哪个值可能重复,你自己在你的系统中运行这个。这将是一个简单的测试。答案是
M
,因为
M
大于
F
,我们的
ABC
都大于。那么,你的意思是它会给字母A-Z作为1-26的顺序号吗?我很高兴听到这个消息!词典排序有时会让人头疼。特别是当你学习字母数字时,比如
M0123
M9
MA1
。。。那么哪一个是
Max()
呢?;)我想应该是Ma1你知道的比你说的多!听到这个消息我很高兴!词典排序有时会让人头疼。特别是当你学习字母数字时,比如
M0123
M9
MA1
。。。那么哪一个是
Max()
呢?;)我想应该是Ma1你知道的比你说的多!