限制连接的排序行数

乔·c

我有两个表A和B,以及一个联接表M。我想针对每个A.id,对表M中的值进行前2个B.id的排序,得出以下结果。这在Azure SQL数据库上运行

Table A          Table M          Table B
+-----+   +-----+-----+-------+   +-----+
|  Id |   | AId | BId | Value |   |  Id |
+-----+   +-----+-----+-------+   +-----+
|   1 |   |   1 |   3 |     4 |   |   1 |
|   2 |   |   1 |   2 |     3 |   |   2 |
|   3 |   |   3 |   2 |     3 |   |   3 |
|   4 |   |   3 |   5 |     6 |   |   4 |
+-----+   |   3 |   3 |     4 |   |   5 |
          |   4 |   1 |     2 |   +-----+
          |   4 |   2 |     1 |
          |   4 |   4 |     3 |
          +-----+-----+-------+

                 Result
          +-----+-----+-------+
          | AId | BId | Value |
          +-----+-----+-------+
          |   1 |   3 |     4 |
          |   1 |   2 |     3 |
          |   3 |   5 |     6 |
          |   3 |   3 |     4 |
          |   4 |   1 |     2 |
          |   4 |   4 |     3 |
          +-----+-----+-------+

我知道我可以选择等于1的所有M.AId行,将其排序并限制为2,但是我需要对表A中的每一行进行此操作。我尝试使用group by,但是我不确定如何排序和限制它。我也尝试搜索与此问题相关的资源,但找不到任何资源。

(我也不确定该标题的措辞如何)

菲利克斯·帕米坦(Felix Pamittan)

您可以使用ROW_NUMBER

SELECT
    AId, BId, Value
FROM (
    SELECT *,
        Rn = ROW_NUMBER() OVER(PARTITION BY AId ORDER BY Value DESC)
    FROM M
) t
WHERE Rn <= 2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Kusto / KQL / ADX中限制连接的行数

来自分类Dev

SQL连接排序和限制结果

来自分类Dev

SQL:如何通过连接进行排序和限制

来自分类Dev

按 desc 限制排序的 sqlite 中的左连接表

来自分类Dev

如何对SAME表进行分组,按日期排序并限制返回的行数?

来自分类Dev

MySQL解释行数限制

来自分类Dev

限制UITextView中的行数

来自分类Dev

Mongodb总行数限制

来自分类Dev

限制IMPORTXML收集的行数

来自分类Dev

groupby Pandas限制行数

来自分类Dev

MySQL解释行数限制

来自分类Dev

限制UITextView中的行数

来自分类Dev

限制页面中的行数

来自分类Dev

MySQL按行数排序

来自分类Dev

按行数对CSV排序?

来自分类Dev

按行数对CSV排序?

来自分类Dev

SQL-根据行数限制返回的行数

来自分类Dev

如何在连接多个表的查询中优化MySQL“按限制1排序”?

来自分类Dev

如何从 BigQuery SQL 中按日期排序并限制为 1 的连接中提取最旧的子记录

来自分类Dev

将公式与行数连接

来自分类Dev

如何限制递归CTE行数

来自分类Dev

如何限制数据集中的行数

来自分类Dev

Oracle,限制每个用户的行数

来自分类Dev

如何增加行数限制?

来自分类Dev

如何限制每个值的行数?

来自分类Dev

如何从grep删除行数限制

来自分类Dev

限制PyQt QCompleter中的行数

来自分类Dev

限制ReportViewer中每页的行数

来自分类Dev

使用变量来限制行数