我读过很多帖子都有解决这个问题的方法,但这在我的情况下不起作用。我做错什么了这将给出每个用户的得分总和,这是查询结果的第一部分(聚合数据)
SELECT user_id, sum(score) as total_user_score
FROM (
SELECT comments_proper.user_id, comments_proper.score
FROM assignment_2.comments_proper
) AS rsch
GROUP BY user_id;
但是,我只需要2个记录,其中包含最小值和最大值。
2条答案
按热度按时间a5g8bdjr1#
我做错什么了?
哦,天哪,从哪里开始。
我读过很多帖子
你应该注意哪些人投了赞成票,哪些人答对了,哪些人投了反对票,哪些人被否决了。前者将包括表格结构、投入和预期产出的例子。以及明确的问题。
我只想要两张唱片
这是来自源数据集还是来自聚合数据集?
后者是一个有点棘手的问题,在这里已经被问了很多遍,所以有多种不同性能特征的解决方案。手册中甚至有一章只涉及这个问题。该链接的当前内容使用子查询来标识min/max值,该值替换了说明max concat技巧的文档的早期版本,但也可以使用变量来标识子查询中的正确caddidate行或使用排序。
然而,您在这里向我们展示的sql与解决您描述的问题关系不大,而且编写得非常糟糕。
我不会提供每个解决方案的例子,但这将解决您的问题。。。
更新我没有测试上面的。我做过测试:
t98cgbkg2#
在你的查询中,你有一些sintax的问题,而且对聚合结果的计算过于复杂。。在cp1.*结果中,在cp2中有最小相关值。*最大相关值。
如果您需要同一行上最小行和最大行的所有结果,那么可以基于聚合结果使用两个内部联接
否则,如果要将结果分为两行,一行表示min,另一行表示max