2012-11-01 42 views
3

执行下面的脚本以创建测试表。sqlite的聚合函数

create table if not exists t1 (id1 int,id2 int); 

现在,表被创建,并且它是空表。

执行下面的脚本,

select max(id1), max(id2) from t1 

它将返回下面的结果(一行)。

max(id1)  max(id2) 
----------- -------- 
<null>  <null> 

执行下面的脚本,

select max(id1), max(id2) from t1 group by id1,id2 

它将返回下面的结果(无结果)。

max(id1)  max(id2) 
----------- -------- 

有没有人解释原因?

回答

3

documentation说:

max()聚合函数返回组中所有值的最大值。 [...]总计max()返回NULL当且仅当该组中没有非NULL值。

在您的第一个查询中,有一个组没有任何记录。

在您的第二个查询中,没有组。