SQL 中每个相同数据的前 2 行
Top 2 Rows from every same data in SQL
这是面试题。
如果假设我有一个 table & 在那个 table 只有一列。
Details
a
a
a
a
b
b
b
c
d
d
d
这是数据。现在我想要每个组的前 2 名。
Details
a
a
b
b
c
d
d
如何得到这个结果。
使用Window Function
获取每组中的前两行
SELECT Details
FROM (SELECT *,
Row_number()OVER(partition BY Details ORDER BY Details) rn
FROM tablename) a
WHERE rn <= 2
注意: 在 order by
中根据您的要求将顺序更改为 Asc
或 Desc
这是面试题。 如果假设我有一个 table & 在那个 table 只有一列。
Details
a
a
a
a
b
b
b
c
d
d
d
这是数据。现在我想要每个组的前 2 名。
Details
a
a
b
b
c
d
d
如何得到这个结果。
使用Window Function
获取每组中的前两行
SELECT Details
FROM (SELECT *,
Row_number()OVER(partition BY Details ORDER BY Details) rn
FROM tablename) a
WHERE rn <= 2
注意: 在 order by
中根据您的要求将顺序更改为 Asc
或 Desc