SQLite max()
関数は、グループ内のすべての値から最大値を返します。
最大値は、ORDER BY
を使用するクエリで最後に表示される値です。 同じ列の句。
例
実例を示します。
SELECT max(Price) FROM Products;
結果:
389.45
これは、そのテーブルのすべての行を返すクエリです。
SELECT * FROM Products
ORDER BY Price;
結果:
ProductId ProductName Price ---------- ----------- ---------- 5 Red Widget 3 Widget Open 89.27 4 Foobar Set 120.0 2 Widget Hold 139.5 1 Blue Widget 389.45
最初の行の価格がNULL値であることに注意してください。 max()
他の行にはNULL以外の値があるため、関数はそれを無視します。すべての行がNULLの場合、max()
NULLを返します。
ORDER BY
を使用しました この例の句。前述のように、max()
関数は、この句を使用したときに最後に表示される値を返します(列を昇順で並べ替えると仮定します。これがデフォルトです)。
明確にするために、同じ結果を得るために以下を使用することもできます。
SELECT * FROM Products
ORDER BY Price ASC;
Max()とCount()を組み合わせる
max()
を組み合わせた例を次に示します。 count()
で関数 最大カウントを返す関数。
SELECT max(AlbumCount)
FROM (SELECT ArtistId, count(Title) AS AlbumCount
FROM Album
GROUP BY ArtistId);
結果:
21
これは、ORDER BY
を使用して別のクエリを実行することで確認できます。 条項。
SELECT
ar.Name,
count(al.Title) AS AlbumCount
FROM Album al
INNER JOIN Artist ar
ON ar.ArtistId = al.ArtistId
GROUP BY ar.Name
ORDER BY AlbumCount DESC
LIMIT 10;
結果:
Name AlbumCount -------------------- ---------- Iron Maiden 21 Led Zeppelin 14 Deep Purple 11 Metallica 10 U2 10 Ozzy Osbourne 6 Pearl Jam 5 Faith No More 4 Foo Fighters 4 Lost 4
NULL値の処理
前述のように、グループにNULL以外の値がない場合(つまり、すべての値がNULLである場合)、max()
NULLを返します。
SELECT
max(123),
max(NULL);
結果:
max(123) max(NULL) ---------- ---------- 123
文字列でのMax()の使用
前述のように、max()
ORDER BY
を使用して最後に返される値を返します 句(デフォルトの昇順を使用していると仮定)。
これと同じ概念が文字列にも当てはまります。
SELECT max(ProductName) FROM Products;
結果:
Widget Opener
そのため、最大文字数などの文字列は返されません。
この結果は、ORDER BY
を使用したクエリで確認できます。 条項。
SELECT * FROM Products
ORDER BY ProductName;
結果:
ProductId ProductName Price ---------- --------------------- ---------- 1 Blue Widgets (6 Pack) 389.45 4 Foobar Set 120.0 5 Red Widget 2 Widget Holder 139.5 3 Widget Opener 89.27