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 何时更改以进行处理。
我有一个 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 何时更改以进行处理。