首页 > 数据库 >牛客——SQL255 给出employees表中排名为奇数行的first_name

牛客——SQL255 给出employees表中排名为奇数行的first_name

时间:2023-09-01 16:47:42浏览次数:194  
标签:name employees SQL255 Anneke Georgi NULL first

描述

对于employees表中,输出first_name排名(按first_name升序排序)为奇数的first_name

输出格式:

first
Georgi
Anneke

请你在不打乱原序列顺序的情况下,输出:按first_name排升序后,取奇数行的first_name。

如对以上示例数据的first_name排序后的序列为:Anneke、Bezalel、Georgi、Kyoichi。

则原序列中的Georgi排名为3,Anneke排名为1,所以按原序列顺序输出Georgi、Anneke。

示例1:

drop table if exists  `employees` ; 
CREATE TABLE `employees` (
  `emp_no` int(11) NOT NULL,
  `birth_date` date NOT NULL,
  `first_name` varchar(14) NOT NULL,
  `last_name` varchar(16) NOT NULL,
  `gender` char(1) NOT NULL,
  `hire_date` date NOT NULL,
  PRIMARY KEY (`emp_no`));
INSERT INTO employees VALUES(10001,'1953-09-02','Georgi','Facello','M','1986-06-26');
INSERT INTO employees VALUES(10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21');
INSERT INTO employees VALUES(10005,'1955-01-21','Kyoichi','Maliniak','M','1989-09-12');
INSERT INTO employees VALUES(10006,'1953-04-20','Anneke','Preusig','F','1989-06-02');

输出:

Georgi
Anneke

我的解题思路:

题目的难点是如何按照原来的顺序输出,我将原来的顺序记录一下,再排序就很好解决了

  1. 利用窗口函数row_number进行排序,排序需要对原顺序和新顺序都记录一下
  2. 根据新顺序筛选出排名奇数的,根据原顺序输出答案
select first_name
from (
         select first_name,
                row_number() over ()                    as old_num,
                row_number() over (order by first_name) as new_num
         from employees
    ) t
where new_num % 2 = 1
order by old_num
;

标签:name,employees,SQL255,Anneke,Georgi,NULL,first
From: https://www.cnblogs.com/moliyy/p/17672295.html

相关文章

  • dns的cname
    DNS分为查询请求和查询响应,请求和响应的报文结构基本相同。DNS报文格式如图所示。上图中显示了DNS的报文格式。其中,事务ID、标志、问题计数、回答资源记录数、权威名称服务器计数、附加资源记录数这6个字段是DNS的报文首部,共12个字节。整个DNS格式主要分为3部分内......
  • Http头Hostname攻击漏洞
    作者:Monyer链接:https://www.zhihu.com/question/67477221/answer/254009089来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。这本来是个简单得不能再简单的漏洞。不过遵循题主的诉苦,我去网上找了一圈,的确发现没有一个能把这个问题说清楚,把解决方案......
  • ModuleNotFoundError: No module named 'flask._compat’
    原因:flask版本过高,flask里面的._compat.py文件没有;解决方案1:解决:降低flask版本,1.1.2即可pipinstallflask==1.1.2 解决方案2:更改flask_script文件,Ctrl+左键 进入到flask_script的 __init__.py 源码文件中,将 fromflask._compatimporttext_type 语句改成 fromf......
  • 大华智慧园区综合管理平台 user_getUserInfoByUserName.action 账号密码泄漏漏洞
    漏洞简介大华智慧园区综合管理平台user_getUserInfoByUserName.action中存在API接口,导致管理园账号密码泄漏漏洞复现fofa语句:"/WPMS/asset/lib/gridster/"或app="dahua-智慧园区综合管理平台"鹰图语句:web.body="/WPMS/asset/lib/gridster/"POC:/admin/user_getUserInfoBy......
  • 腾讯云轻量级主机修改hostname后重启后又恢复原先的hostname
    搭建k8s后,执行inspect后显示hostname不符合规范,修改/etc/hostname后重启,发现又自动恢复到默认主机名:查资料后发现腾讯云的配置里,如果重启会重置hostname.修改配置/etc/cloud/cloud.cfgvim/etc/cloud/cloud.cfgpreserve_hostname:true:wqreboot重启后就是刚才设......
  • linux下vi或vim操作Found a swap file by the name的原因及解决方法--九五小庞
    在linux下用vi或vim打开Test.java文件时[root@localhosttmp]#viTest.java出现了如下信息:E325:ATTENTIONFoundaswapfilebythename".Test.java.swp"ownedby:rootdated:WedDec713:52:562011filename:/var/tmp/Test.javamo......
  • 微信小程序 type="nickname" 点击后,获取不到最新值
    在uniapp开发微信小程序,或是使用小程序开发平台开发,会涉及到获取用户的头像和昵称,而在最新的微信小程序基础库,getUserInfo等不能在获取这些信息,官方推荐使用头像昵称填写能力(基础库2.21.2版本开始支持,覆盖iOS与安卓微信8.0.16以上版本),下面讲讲我在使用过程中遇到的问题。<bu......
  • gui_download和ws_filename_get
    *&---------------------------------------------------------------------**&ReportZ100*&*&---------------------------------------------------------------------**&*&*&------------------------------------------------------......
  • ModuleNotFoundError: No module named 'torch._six'
    ModuleNotFoundError:Nomodulenamed'torch._six' ---------------------------------由于torch2.0版本没有这个模块,因此,只需要降低torch版本,就可以解决。1)新建一个虚拟环境2)安装低版本torch REFhttps://blog.csdn.net/wzwddkb/article/details/130400156-------......
  • python 中 if __name__ == '__main__'
    当我们编写Python模块时,有时候需要让某些代码只在该模块作为主程序运行时才执行,而不是被其他模块import引入时就执行。这时候可以使用if__name__=='__main__'这个条件语句。什么是 name 变量在Python中,每个模块(Python文件)都有一个内置变量__name__,用于指示当前模......