1

を使用して複数の選択ステートメントを実行したいGROUP BY

私は次のものを試しました:

ResultSet rs=s.executeQuery("SELECT attr_name, count(*)"
                          + " FROM Table_name"
                          + " GROUP BY attr_name;"
                          + "SELECT attr_name, count(*)"
                          + " FROM Table_name"
                          + " GROUP BY attr_name");

しかし、それは来ていません。

4

2 に答える 2

2

2 つの結果セットを結合する方法は、UNION ALL

ResultSet rs=s.executeQuery(
  "select attr_name,count(*) from Table_name group by attr_name UNION ALL select attr_name,count(*) from Table_name group by attr_name"
);

列が同じであることを確認するように注意してください。同じ数の列が存在し、同じタイプである必要があります。次のことを確認するために、列に明示的に名前を付けることも価値があります。SELECT attr_name, count(*) AS attr_count FROM...

于 2013-08-23T17:41:00.560 に答える
0

1 つのクエリで 2 つのステートメントを実行しています。ResultSet rs はポインタです。つまり、テーブルの行を指すだけなので、属性名に基づいてデータを取得できます。
この場合、どこを指すかがわかりません。

私によると、簡単な解決策は、可能であれば2つの結果セットで「結合」を使用して、rsが適切な属性名からフェッチできるようにすることです。
結合が不可能な場合は、プログラム ロジックを使用して、複数の ResultSet を使用し、フィールド データを処理する方がはるかに優れて簡単です。

于 2013-08-23T17:55:17.197 に答える