sql排序问题_sql中order by默认升序还是降序

sql排序问题_sql中order by默认升序还是降序排座位问题的思路 表: Seat + + + | Column Name | Type | + + + | id | int | | name | varchar | + + + Id是该表的主键列。

SQL中的排座位问题

排座位问题的思路

表: Seat

+————-+———————+
| Column Name | Type |
+————-+———————+
| id | int |
| name | varchar |
+————-+———————+
Id是该表的主键列。
该表的每一行都表示学生的姓名和ID。
Id是一个连续的增量。

编写SQL查询来交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。

按 id 升序 返回结果表。

来源:力扣(LeetCode)

从上到下,存在两个学生就交换一次,总数为计数在队伍中不交换

思路:一般是判断当前id,这个是不是最后的一个学生,再通过窗口函数 :

往前取N行 lag(参照行,行数N,default值)

往后取N行 lead()

转换查询出来的位置;

select id,
	if(i %2 = 0,last,next) student
	from (
        select id,student,
		lag() over(order by id ) last
		lead() over(order by id) next
	from 表
 ) ss

力扣上面有人用位运算来排序直接输出,直接囊括了边界值

select rank() over(order by (id -1)^1) as id,student  from 表;

在id值中,对于每个偶数减少2(偶数先减为奇数,该数二进制末尾是1,异或运算会被变成0,相当于-2)

对于每个奇数,先减为偶数,末尾是0,与1运算后,会加1,等于不变,这样就交换了相邻奇偶数

原文地址:https://www.cnblogs.com/aLiuLiu/archive/2022/09/02/16651270.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4825.html

(0)
上一篇 2023-06-03
下一篇 2023-06-03

相关推荐

  • Python文件命名原则

    Python文件命名原则在Python中,文件命名并没有严格要求,但是为了使代码更为易读易懂,提倡使用一些有规范的文件命名方式。

    2024-04-14
    26
  • Redis系列(六):设置/移除键的过期时间[亲测有效]

    Redis系列(六):设置/移除键的过期时间[亲测有效]设置/移除键的过期时间。

    2023-02-25
    98
  • Linux 定时备份数据库[通俗易懂]

    Linux 定时备份数据库[通俗易懂]
    1、定时任务描述: 1)每天凌晨2:10备份数据库myTestDB到/data/backup/db 2)备份开始和结束给予相应提示 3)备份后的文件要求以备…

    2023-04-09
    115
  • python redis cluster_rediscluster集群原理

    python redis cluster_rediscluster集群原理本文环境:centos 7,Python3编译安装成功,包括pip3,然后需要安装redis相关的Python3驱动包,本的redis指redis包而非redis数据库,rediscluster类似。

    2022-12-29
    129
  • 清华大数据赵强_为何需要工作流引擎

    清华大数据赵强_为何需要工作流引擎一、什么是工作流? 工作流(WorkFlow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某

    2023-03-16
    113
  • redis初识「建议收藏」

    redis初识「建议收藏」redis介绍 redis是什么 redis是一种基于键值对的NOsql数据库,与很多键值对数据库不同,redis中的值 等多种数据机构和算法组成,因为redis会将所有的数据都放在内存中,所以他的读

    2022-12-28
    99
  • 在终端中运行Python脚本

    在终端中运行Python脚本Python是一个高级编程语言,常用于快速开发Web应用、科学计算、自动化任务等。Python脚本在本地运行可以让我们更加方便地进行代码测试和调试,另外Python的平台独立性也让Python成为跨平台开发的理想选择。但是在一些情况下,我们需要在终端中运行Python脚本。

    2023-12-29
    60
  • 使用Python Tutor调试Python代码

    使用Python Tutor调试Python代码在程序设计中,调试是一个不可避免的过程,Python程序也不例外。在调试过程中,如何快速定位和解决问题是至关重要的。Python Tutor是一款在线调试工具,它可以可视化Python代码执行过程,帮助开发者更好地理解和调试Python代码。

    2023-12-30
    71

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注