如何从Java数据库中打印MAX和描述

时间:2013-02-11 02:51:57

标签: java sql

我开始学习如何通过Java程序连接数据库。我有一个名为City的表,它只包含两列:CityName和Population。我想找到最高的人口,然后将这些人口与相应城市的名称一起提供。

我知道如何获得最高人口(请参阅以下内容,我知道这可能并不理想,但至少对我有用):

            double max = 0.0;
            String sqlStatement = "SELECT MAX(Population) FROM City"; 
            ResultSet result = stmt.executeQuery(sqlStatement);
            if (result.next())
            {
                   highest = result.getDouble(1);
            }
            System.out.printf("Highest population: %,.0f", highest);

我很确定要获得最高人口PLUS相应城市的名称,我的Sql语句应该改为:

"SELECT CityName, MAX(Population) FROM City GROUP BY CityName";

但我不能让它超越那个。我以为我可以添加像

这样的东西

String highestCity = result.getString(2)

然后将highestCity添加到System.out.printf输出行,但这不起作用。

有人可以帮忙吗?

谢谢!

2 个答案:

答案 0 :(得分:5)

这个怎么样?

 String sqlStatement = "SELECT CityName, Population FROM City WHERE Population IN (SELECT MAX(Population) FROM City)"; 

答案 1 :(得分:3)

您希望按人口降序对结果进行排序,并将查询限制为仅返回一个结果。类似的东西:

SELECT * FROM city ORDER BY population DESC LIMIT 1;