我开始学习如何通过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输出行,但这不起作用。
有人可以帮忙吗?
谢谢!
答案 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;