1

Javaプログラムを介したデータベースへの接続について学び始めています。CityNameとPopulationの2つの列のみを含むCityというテーブルがあります。最も人口が多い場所を見つけて、その人口と対応する都市の名前を付けたいと思います。

私は、最も高い人口を取得する方法を知っています(以下を参照してください。これはおそらく理想的ではないことはわかっていますが、少なくとも私にとっては機能しています)。

            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ステートメントを次のように変更する必要があります。

"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

結果を人口の降順で並べ替え、クエリが1つの結果のみを返すように制限する必要があります。何かのようなもの:

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