Exchange Seats

Exchange Seats

description:
Mary is a teacher in a middle school and she has a table seat storing students’ names and their corresponding seat ids.

The column id is continuous increment.

Mary wants to change seats for the adjacent students.

Can you write a SQL query to output the result for Mary?

+---------+---------+
|    id   | student |
+---------+---------+
|    1    | Abbot   |
|    2    | Doris   |
|    3    | Emerson |
|    4    | Green   |
|    5    | Jeames  |
+---------+---------+

For the sample input, the output is:

+---------+---------+
|    id   | student |
+---------+---------+
|    1    | Doris   |
|    2    | Abbot   |
|    3    | Green   |
|    4    | Emerson |
|    5    | Jeames  |
+---------+---------+

Note:
If the number of students is odd, there is no need to change the last one’s seat.

这道题给了一个seat表,包含学生的座位号id和姓名,并且id是连续相邻递增的。
题目让把相邻座位号的学生交换位置,也就是1和2换,3和4换。交换时直接交换学生的姓名。如果总人数是奇数的话,最后一名学生的位置不动。

这道题不好做,看了leetcode官方solution才懂了。要用到case when语句或者if函数。

思路:对于奇数的id,如果是最后一个id,则id不变;否则id=id+1;如果是偶数的id,则id=id-1。id号的总数可以用select Count(*) from seat查出来。

这是官方题解:

SELECT
    (CASE
        WHEN MOD(id, 2) != 0 AND counts != id THEN id + 1
        WHEN MOD(id, 2) != 0 AND counts = id THEN id
        ELSE id - 1
    END) AS id,
    student
FROM
    seat,
    (SELECT
        COUNT(*) AS counts
    FROM
        seat) AS seat_counts
ORDER BY id ASC;

也可以用IF函数,IF(condition, value_if_true, value_if_false)
IF函数类似高级语言的三元表达式,condition为真时返回value_if_true,condition为假时返回value_if_false。
因此也可以这样写:

# Write your MySQL query statement below
select IF(id % 2 = 0, id - 1, 
         IF(id = (select count(*) from seat),
           id, id + 1))
as id, student from seat order by id;

谢谢你的观看!

"Carseats"是一个不常见的术语,可能是想问关于"Car Safety Seats"(汽车安全座椅)或者在某种特定上下文中提到的"Decision Trees"。在统计学习和机器学习中,"Decision Tree"(决策树)是一种常用的算法,它是一种可视化模型,用于分类和回归分析。决策树通过对数据集进行一系列基于特征的划分(或“节点”),构建出一个树状结构,用于预测或做出决策。 决策树的工作原理是: 1. **特征选择**:开始时选择一个最优特征来分割数据,通常依据信息增益、基尼指数等准则。 2. **划分数据**:根据选定的特征值,将数据分为子集。 3. **递归拆分**:对每个子集重复上述步骤,直到达到某个停止条件(如达到最大深度、叶子节点包含纯数据或样本数量太少)。 4. **构建模型**:形成决策规则,每个内部节点代表一个特征,分支代表可能的取值,叶子节点给出预测结果。 如果你是对汽车安全座椅的推荐系统或使用决策树进行相关评估感兴趣,决策树模型同样可以应用在此场景中,通过用户的车辆类型、儿童年龄和体重等因素,为家长提供最合适的儿童安全座椅建议。 **相关问题**: 1. 决策树在汽车安全座椅推荐中的具体应用场景是什么? 2. 使用决策树如何确定哪些因素对选择安全座椅最重要? 3. 如何处理决策树中的缺失值或离群值问题?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值