2012-11-01 60 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值。

在您的第一個查詢中,有一個組沒有任何記錄。

在您的第二個查詢中,沒有組。