如何按组检索? (首先获得组1,进程。接下来,获取组2,进程..依此类推。)分组基于 pos 列,该列应该相等。
我一直在阅读关于对同一个表进行基本连接的引用,但是对我来说这是不可能的,因为它会返回一组非常大的数据,这将导致OutOfMemoryError。
答案 0 :(得分:1)
您有两种选择:
答案 1 :(得分:1)
您需要两个游标,一个用于选择不同的组,另一个用于分别处理每个组。
//Assuming you have a Connection conn;
PreparedStatement groupsPS =
conn.prepareStatement("SELECT distinct pos from yourtable");
ResultSet groupsRS = groupsPS.executeQuery();
PreparedStatement groupdataPS =
conn.prepareStatement("SELECT * from yourtable where pos = ?");
ResultSet groupdataRS = null;
while(groupsRS.next())
{
groupdataPS.setString(1, groupsRS.getString("pos"));
groupdataRS = groupdataPS.executeQuery();
while(groupsRS.next())
{
//process your data here
}
groupdataRS.close();
}
groupsRS.close();
groupdataPS.close();
groupsPS.close();
答案 2 :(得分:0)
就像@TimeKiller和@BetaRide所提到的那样,我重组了我的SQL表,并为我的 pos 添加了一个索引表,其频率为另一列。
使用它,我可以使用频率> = 2迭代每个 pos ,使用选定的 pos 获取上表中的行,并处理它们
谢谢!