SQL 按记录迭代组

SQL Iterate over group by records

我有一个 table 看起来像这样

user_id | attr1 | attr2
--------+-------+-------
AAA     | 123   | 345
BBB     | 223   | 567
AAA     | 345   | 477
CCC     | 345   | 234
BBB     | 356   | 123
CCC     | 456   | 477

显然,记录可以按 user_id 分组。我想要做的是 batch/club 记录 w.r.t user_id 然后通过检索 user_id 下的所有记录进行进一步处理来遍历该组。

如果想要一个列表列表,就像我按 user_id 分组之后。内部列表将包含 table 的单独记录,外部列表将包含所有 user_id.

的列表

到目前为止我已经想出了这个 -

SELECT DISTINCT user_id FROM table; =====> 将其放入列表中

迭代上面的列表并执行下面的查询

SELECT * FROM table where user_id = list[i]

我觉得一定有更好的方法来做到这一点。我正在 Java 中编写样板代码,如果有帮助,这是一个 Drill 查询。

user_id 排序 table 并一次只检索一行怎么样?

SELECT t.*
FROM table t
ORDER BY user_id;

在应用程序中,您可以检测 user_id 何时更改以进行处理。