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

加入两组结果的方法是使用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

您正在一个查询中执行 2 条语句。ResultSet rs 是一个指针,也就是说,它只是指向表格行,所以我们可以根据属性名取数据。
在这种情况下,它只是不知道指向哪里。

根据我的说法,一个简单的解决方案是如果可能的话,在两个结果集上使用“join”,以便 rs 可以从适当的属性名称中获取。
如果无法加入,使用多个 ResultSet 并使用程序逻辑处理您的字段数据会更好、更容易。

于 2013-08-23T17:55:17.197 回答