如何使用窗口函数根据奇偶行号过滤掉结果,没有现有列作为行ID
Posted
技术标签:
【中文标题】如何使用窗口函数根据奇偶行号过滤掉结果,没有现有列作为行ID【英文标题】:How to filter out results on the basis of odd and even row number using window functions, no existing column as Row ID 【发布时间】:2021-05-23 07:11:52 【问题描述】:我目前正在使用以下代码,但它不起作用,请指导我-
select name, Continent, LifeExpectancy
from world.country
where mod(Row_Number()
over(order by Continent),2)=0;
【问题讨论】:
你能提供一些样本数据+你得到的结果吗? 你想完成什么? 【参考方案1】:您通常需要一个子查询:
WITH cte AS (
SELECT *, ROW_NUMBER() OVER (ORDER BY Continent) rn
FROM world.country
)
SELECT name, Continent, LifeExpectancy
FROM cte
WHERE rn % 2 = 0; -- for evens
【讨论】:
【参考方案2】:您可以创建子查询来使用 WINDOW 功能。 你可以试试这个吗?
select name, Continent
from (
select name, Continent, LifeExpectancy, Row_Number() over(order by Continent) rn
from world.country) rs
where mod(rs.rn,2)=0;
【讨论】:
以上是关于如何使用窗口函数根据奇偶行号过滤掉结果,没有现有列作为行ID的主要内容,如果未能解决你的问题,请参考以下文章