我想使用GROUP BY
执行多个select语句。
我试过以下一个:
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");
但它没有来。
答案 0 :(得分: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...
答案 1 :(得分:0)
您正在一个查询中执行2个语句。 ResultSet rs是一个指针,也就是说,它只是指向表行,因此我们可以根据属性名称获取数据。
在这种情况下,它只是不知道在哪里指出。
根据我的说法,一个简单的解决方案是在两个结果集上使用“join”(如果可能),以便rs可以从适当的属性名称中获取。
如果无法连接,使用多个ResultSet会更好,更容易,并使用程序逻辑处理您的字段数据。