学生向けプログラミング入門

学生向けにプログラミングを解説。Java、C++、Ruby、PHP、データベース

HSQLDBを使用したデータベース入門その5 関数 count() avg() max()

<<前  [TOP]  次>>


今まではselectの出力をそのまま表示してきましたが、例えば「'国語'という言葉を含む書名の本はいくつあるか?」という問にはどう答えたらいいでしょうか?
こうした時SQLでは、次の例のように、関数count()を使用することが出来ます。


【例1:「国語」という言葉を含む本の数】

select count(title) from books where title like '%国語%';




ここで関数count()は「select title from books where title like '%国語%';」が検索した行の数(書名の数)を返すことになります。


次の例では、「count()」の形で、テーブルの全行数がカウントされています。


【例2:テーブル「books」の行数を数える】

select count(*) from books;




次の例を見てください。


【例3:「国語」という言葉を含む本を出版している出版社の数】

select count(distinct publisher) from books where title like '%国語%';




この例では「count( distinct 項目名 )」という形で、項目の相互にあい異なる値の数が数えられます。
selectの結果に同じ値の出力が含まれていても、distinct が項目名についていれば、重複した出力は省かれるのと同じです。


次の例は、書名に「国語」が付く本の平均価格を求めるものです。


【例4:書名に「国語」が付く本の平均価格】

select avg(price) from books2 where title like '%国語%';




次の例は、書名に「国語」が付く本の最大価格を求めるものです。


【例5:書名に「国語」が付く本の最大価格】

select max(price) from books2 where title like '%国語%';




<<前  [TOP]  次>>