1

我开始学习如何通过 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);

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

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

但除此之外,我无法让它发挥作用。我想我可以添加类似的东西

String highestCity = result.getString(2)

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

任何人都可以帮忙吗?

谢谢!

4

2 回答 2

5

这个怎么样 ?

 String sqlStatement = "SELECT CityName, Population FROM City WHERE Population IN (SELECT MAX(Population) FROM City)"; 
于 2013-02-11T03:05:27.050 回答
3

您希望按人口降序对结果进行排序,并将查询限制为仅返回一个结果。就像是:

SELECT * FROM city ORDER BY population DESC LIMIT 1;
于 2013-02-11T03:02:58.453 回答