3

以下のスクリプトを実行して、テスト テーブルを作成します。

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

これで、テーブルが作成され、空のテーブルになります。

以下のスクリプトを実行し、

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

結果(1行)の下に返されます。

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

以下のスクリプトを実行し、

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

結果以下(結果なし)を返します。

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

誰か理由を説明してくれませんか?

4

1 に答える 1

3

ドキュメントには次のように記載されています。

max()集計関数は、グループ内のすべての値の最大値を返します。[...] 集計は、グループに非値がない場合にのみmax()返します。NULLNULL

最初のクエリには、レコードを持たないグループが 1 つあります。

2 番目のクエリには、グループがありません。

于 2012-11-01T08:58:48.570 に答える