SQL61 给出employees表中排名为奇数行的first_name

2023-10-11 02:48

本文主要是介绍SQL61 给出employees表中排名为奇数行的first_name,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1. 题目
  • 2. 题解

1. 题目

  • 题目来源:SQL61 给出employees表中排名为奇数行的first_name

  • 题目描述
    在不打乱原序列顺序的情况下,输出:按first_name排升序后,取奇数行的first_name

  • 一张表

    # employees
    10001|1953-09-02|Georgi|Facello|M|1986-06-26
    10002|1964-06-02|Bezalel|Simmel|F|1985-11-21
    10005|1955-01-21|Kyoichi|Maliniak|M|1989-09-12
    10006|1953-04-20|Anneke|Preusig|F|1989-06-02
    
  • 所需结果

    Georgi
    Anneke
    

2. 题解

这题有点小问题,题目要求结果的排序按照原表来,但是使用了窗口函数后顺序居然改变了,导致不通过(如下)。

SELECT t.first_name
FROM(SELECT *,ROW_NUMBER() OVER(ORDER BY first_name) rkFROM employees) t
WHERE t.rk % 2 != 0

后来有人说可以使用IN,使用子查询 对first_name进行过滤:

# 正解
SELECT first_name
FROM employees
WHERE first_name IN (SELECT t.first_nameFROM(SELECT *,ROW_NUMBER() OVER(ORDER BY first_name) rkFROM employees) tWHERE t.rk % 2 != 0) 

注意下这题的需求:排序不变!
以及从窗口函数子查询中取取数据会改变原有的排序顺序。

这篇关于SQL61 给出employees表中排名为奇数行的first_name的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/184964

相关文章

hdu 2093 考试排名(sscanf)

模拟题。 直接从教程里拉解析。 因为表格里的数据格式不统一。有时候有"()",有时候又没有。而它也不会给我们提示。 这种情况下,就只能它它们统一看作字符串来处理了。现在就请出我们的主角sscanf()! sscanf 语法: #include int sscanf( const char *buffer, const char *format, ... ); 函数sscanf()和

Oracle把一个表的某个字段更新到另一张表中

第一种方法: update tablea set column_name1=(select name2 from tableb where tableb.name3=tablea.name1) 只修改一个 update tablea set column_name1=(select name2 from tableb where tableb.name3='a') where tablea.na

广度优先搜索Breadth-First-Search

目录  1.问题 2.算法 3.代码 4.参考文献  1.问题         广度优先搜索,稍微学过算法的人都知道,网上也一大堆资料,这里就不做过多介绍了。直接看问题,还是从下图招到一条从城市Arad到Bucharest的路径。  该图是连通图,所以必然存在一条路径,只是如何找到最短路径。 2.算法 还是贴一个算法的伪代码吧: 1 procedu

影响关键词排名稳定的因素有哪些?

网站上线了很久关键词还是没有出现排名,很多站长都非常关心这个问题,为什么我正常优化的网站就是没有排名呢?下面,曾庆平SEO为大家分析一下影响关键词排名的因素有哪些,快看一下自己的网站是不是出现了以下问题。 一、网站内部结构 首先网站一定要充分考虑两个方面,一个是用户,一个就是搜索引擎。 (1)用户喜欢什么样的网站?网站主题是不是够明确?用户在进入网站后如果在几秒内看不懂网站的主题就会退

怎么分析竞争对手提高网站排名?

想做好seo就要学会分析竞争对手,知己知彼,方能百战百胜。近来许多做网站的站长们都不知如何去分析竞争对手,如何从竞争对手那里得到有效的方法,来提升自己网站的权重,那么今天就给大家理个思路把这套方法教给大家。 分析就是要发现其薄弱点及可取之处任何事情都不是无懈可击的,如果一个网站真的无懈可击了,那么排名也不可能经常浮动变化了。而分析竞争对手网站,就是要发现其可取之处和不足的地方。如果一个网站主要

网站品牌为何对于SEO排名如此重要?

为什么你网站没有排名,因为你网站的品牌不够,你想一下,同样一个产品关键词,你要是百度,你会给京东,还是给一个不知名的小公司,所以品牌是决定百度SEO排名最重要的因素之一。 你可能还是不能够理解,为何还有很多不知名的网站排名一样非常好,百度排名是根据综合因素给出排名的,只是品牌是排名的重要因素之一。而判断品牌,百度也是根据综合因素来判断,我们还是从头说起。 医疗行业为什么难做排名 我想医

那么手机网站关键词优化排名该怎样做?

现今移动端流量的增长,这让越来越多的企业逐渐重视起移动端网站的用户流量,做好移动SEO排名优化效果已是刻不容缓的。但移动端网站推广的方式和技巧有很大的差异,如用PC端的优化方式来做手机网站关键词排名,那么这样的移动端网站排名是很难有较大的提升的。那么手机网站关键词优化排名该怎样做? 1、网站的logo PC端的网站首页权重最高的位置就是在左上角,因此我们市场会看到这个位置均放置的为网站logo

SQLSERVER排名函数RANK,DENSE_RANK,NTILE,ROW_NUMBER

SQL SERVER排名函数RANK,DENSE_RANK,NTILE,ROW_NUMBER 前言 本文意于用实例数据帮助理解SQL SERVER排名函数RANK,DENSE_RANK,NTILE,ROW_NUMBER。 准备工作 创建测试表:   ? 1 2 3 4 5 create table test( id int identity(1,1)

什么是Java中的模板方法模式?请给出示例。Java中的设计模式有哪些?请列举几个并解释其应用场景。

什么是Java中的模板方法模式?请给出示例。 Java中的模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义算法的某些特定步骤。这种模式涉及到一个抽象类,这个类定义了一个或多个抽象操作,以便让子类实现。而模板方法定义了算法的骨架,它将调用这些抽象操作。

请解释一下 JDBC 的作用,并给出一个简单的使用 JDBC 查询数据库的例子?

JDBC (Java Database Connectivity) 是 Java 编程语言中用于连接和操作关系型数据库的标准 API。 它的主要作用是为 Java 应用程序提供了一种标准的方式来访问和处理数据库中的数据,而不需要关心底层具体的数据库系统(如 MySQL, Oracle, PostgreSQL 等)。 JDBC 提供了以下核心功能: 连接数据库:通过 JDBC 驱动程序建立与数