有没有办法只选择为​​每条记录估算的第一条评论?

Posted

技术标签:

【中文标题】有没有办法只选择为​​每条记录估算的第一条评论?【英文标题】:Is there a way to only select the first comment imputed for each record? 【发布时间】:2022-01-01 10:56:57 【问题描述】:

我有一个由 CommentDateTime、CommentCode、Comment 和 CommentKey 组成的数据集。每个 CommentCode 有多个 cmets,但我只希望为每个 CommentCode 创建的第一个评论显示在我的报告中。

有没有办法做到这一点?

我是 s-s-rS 的新手,所以如果我没有很好地解释我的问题,我很抱歉。

【问题讨论】:

【参考方案1】:

除非我遗漏了什么,否则最好在您的数据集查询中执行此操作,以便只返回第一条评论,而不是向报告发送大量数据,然后编写表达式将其过滤掉。

类似

SELECT a.CommentDateTime, a.CommentCode, a.Comment, a.CommentKey 
    FROM (
        SELECT 
                CommentDateTime, CommentCode, Comment, CommentKey,
                ROW_NUMBER() OVER(PARTITION BY CommentCode ORDER BY CommentDateTime) as RowN
        FROM @myTable
        ) a 
    WHERE a.RowN = 1

这假设 CommentKey 对于每条评论都是唯一的。 其中 a.RowN = 1

【讨论】:

这非常有效。太感谢了。如果我想将其添加到查询设计器中的现有查询中,我是否会将其设为 Inner JOIN? 这取决于您想要实现的目标,但您需要提出一个新问题才能得到答案。请记住包括您现有的查询、示例数据和预期结果,如果您这样做,有人会很快提供答案。 非常感谢!

以上是关于有没有办法只选择为​​每条记录估算的第一条评论?的主要内容,如果未能解决你的问题,请参考以下文章

BellmanFord的队列优化

有重复组时选择最后一组的第一条记录

选择基于重复项的第一条记录[重复]

mybatis 关联查询时,从表只返回第一条记录解决办法

oracle 表中有很多相同的记录,怎么只取满足条件的第一条?

2022-05-27:现在有N条鱼,每条鱼的体积为Ai,从左到右排列,数组arr给出。 每一轮,左边的大鱼一定会吃掉右边比自己小的第一条鱼, 并且每条鱼吃比自己小的鱼的事件是同时发生的。 返回多少轮之