我正在尝试在 postgres 的查询中使用 group by。我无法让它按我的意愿工作,以便根据需要对结果进行分组。
这是我刚刚回答的关于递归查询的另一个堆栈问题的扩展。但现在我需要能够对最终查询的 root_id 列上的结果进行分组。这是之前的查询:
select cl.parent_comment_id,
cl.article_comment_id,
cl.comment,
cl.article_id,
cl.comment_depth
from comment_list cl
order by cl.root_id, cl.article_comment_id, cl.comment_depth;
这是我想做的,以便将具有相同 parent_comment_id 的任何记录保存在一起。
select cl.parent_comment_id,
cl.article_comment_id,
cl.comment,
cl.article_id,
cl.comment_depth
from comment_list cl
group by cl.parent_comment_id
order by cl.parent_comment_id, cl.article_comment_id, cl.comment_depth;
可以有许多记录返回相同的 parent_comment_id,但任何给定的 article_comment_id 的记录不同。即每条评论都是唯一的(id、评论、标题等),但每条父评论可以有很多子评论。这已经被递归查询检索到了,现在我只是想正确地对它们进行分组。
编辑:
看看http://www.sqlfiddle.com/#!12/77771/2 。我希望 article_comment_id=6 紧跟在 article_comment_id=3 下方,因为 id=3 是父级。然后 article_comment_id=4。
但是我认为这需要在程序上完成。
所以我认为这是一个“没关系”类型的问题,除非有人知道怎么做(这就是我放弃它的原因)。但我想我会尝试在程序上解决这部分问题。