集計関数
MAX 最大値
MIN 最小値
AVG 平均値
COUNT データの個数
合計(Sum)
name別にpriceの合計を計算して表示
ResultSet rs = stmt.executeQuery("SELECT name,Sum(name) FROM data GROUP BY name "); while (rs.next()) { System.out.println("name = " + rs.getString("name")); System.out.println("price = " + rs.getInt(2)); }
結果:
name = いちご
price = 110
name = りんご
price = 201
データの個数(Count)
ResultSet rs = stmt.executeQuery("SELECT name,Count(name) FROM data GROUP BY name "); while (rs.next()) { System.out.println("name = " + rs.getString("name")); System.out.println("count = " + rs.getInt(2)); }
結果:
name = いちご
count= 1
name = りんご
count= 2
複数の集計関数を指定
ResultSet rs = stmt.executeQuery("SELECT name,Sum(price),Avg(price) FROM data GROUP BY name "); while (rs.next()) { System.out.println("name = " + rs.getString("name")); System.out.println("合計 = " + rs.getInt(2)); System.out.println("平均 = " + rs.getFloat(3)); }
結果:
name = いちご
合計 = 110
平均 = 110.0
name = りんご
合計 = 201
平均 = 100.5
列名の指定(AS)
ResultSet rs = stmt.executeQuery("SELECT name,Sum(price) AS '合計' FROM data GROUP BY name "); while (rs.next()) { System.out.println("name = " + rs.getString("name")); System.out.println("合計 = " + rs.getInt("合計")); }
特定の集計行のみの表示(HAVING)
ResultSet rs = stmt.executeQuery("SELECT name,Sum(price) AS '合計' FROM data GROUP BY name HAVING Sum(price) > 200 "); while (rs.next()) { System.out.println("name = " + rs.getString("name")); System.out.println("合計 = " + rs.getInt("合計")); }
結果:
name = りんご
合計 = 201