码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • LeetCode---SQL刷题2


    目录:

        • 1.1873. 计算特殊奖金
        • 2.627. 变更性别
        • 3.196. 删除重复的电子邮箱
        • 4.1667. 修复表中的名字
        • 5.1484. 按日期分组销售产品
        • 6.1527. 患某种疾病的患者

    1.1873. 计算特殊奖金

    在这里插入图片描述

    SQL语句如下:

    解题1采用CASE WHEN … END:

    SELECT employee_id,
    CASE 
    WHEN  MOD(employee_id,2) = 1 AND LEFT(name,1) <> 'M' THEN   salary
    ELSE  0
    END
    AS bonus 
    FROM Employees 
    ORDER BY employee_id     
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    解题2【用时时间少】采用IF函数:

    SELECT employee_id,
    IF(MOD(employee_id,2) = 1 AND LEFT(name,1) <> 'M',salary,0) 
    AS bonus 
    FROM Employees 
    ORDER BY employee_id 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.627. 变更性别

    在这里插入图片描述

    SQl语句如下:

    解题1:

    UPDATE Salary SET
    sex  = 
    CASE WHEN sex = 'm' THEN 'f'  WHEN sex = 'f' THEN 'm'   ELSE sex END
    
    • 1
    • 2
    • 3

    解题2:

    update salary set sex = char(211 - ascii(sex));
    
    • 1

    解题3:

    update salary set sex = IF(sex = 'm','f','m');
    
    • 1

    解题4:【用时时间少】:

    UPDATE Salary SET
    sex  = 
    CASE sex WHEN 'm' THEN 'f' WHEN 'f' THEN 'm' ELSE sex END 
    
    • 1
    • 2
    • 3

    3.196. 删除重复的电子邮箱

    在这里插入图片描述
    SQL语句如下:
    解题1:

    DELETE p1 
    FROM Person p1,Person p2
    WHERE p1.id > p2.id AND p1.email = p2.email;
    
    • 1
    • 2
    • 3

    解题2【用时时间少】:

    DELETE FROM Person 
    WHERE id NOT IN 
    (
       SELECT * FROM  (SELECT min(id) FROM Person GROUP BY email) 
    t);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    备注:
    下面这种操作是不可以的,因为不能在同一个sql语句中,先select同一个表的某些值,然后再update这个表,所以使用SELECT * FROM t ,这里的t就是重复记录中id最小的记录作为一张表进行返回。

    DELETE FROM Person 
    WHERE id NOT IN (SELECT min(id) FROM Person GROUP BY email);
    
    • 1
    • 2

    4.1667. 修复表中的名字

    在这里插入图片描述
    SQL语句如下:
    解题1:

    SELECT user_id,
    CONCAT(
        UPPER(LEFT(name,1)),
        LOWER(RIGHT(name,LENGTH(name) - 1))
    ) AS name
    FROM Users
    ORDER BY user_id;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    解题2(用时较少):

    SELECT user_id,
    CONCAT(
        UPPER(LEFT(name,1)),
        LOWER(SUBSTRING(name,2))
    ) AS name
    FROM Users
    ORDER BY user_id;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    5.1484. 按日期分组销售产品

    在这里插入图片描述
    SQL如下:

    关于GROUP_CONCAT函数表示返回一个包含组中连接的非 NULL 值的字符串结果。来源于官方解释:GROUP_CONCAT

    解题:

    SELECT sell_date,
    COUNT(DISTINCT product) AS num_sold ,
    GROUP_CONCAT(DISTINCT product) AS products
    FROM Activities 
    GROUP BY sell_date
    
    • 1
    • 2
    • 3
    • 4
    • 5

    备注:由于GROUP BY内部默认有排序所有可以不用排序

    6.1527. 患某种疾病的患者

    在这里插入图片描述
    SQL如下:
    解题1:

    SELECT patient_id, patient_name, conditions   
    FROM Patients
    WHERE conditions like 'DIAB1%'  OR conditions like '% DIAB1%'
    
    • 1
    • 2
    • 3

    解题2:

    SELECT patient_id, patient_name, conditions   
    FROM Patients
    WHERE conditions REGEXP '\\bDIAB1'
    
    • 1
    • 2
    • 3
  • 相关阅读:
    1130 - Host ‘192.168.10.10‘ is not allowed to connect to this MysOL server
    C++基础知识(五)--- 智能指针类&字符串类
    先来聊聊MySQL的binlog文件解析
    EtherCAT IGH 驱动一个步进电机
    ModbusTCP服务端
    OOP第二阶段题集总结
    docker--在Anaconda jupyter 容器中使用oracle数据源时,Oracle客户端安装配置及使用示例
    C# 流Stream详解(3)——FileStream源码
    ssm基于微信小程序的高校课堂教学管理系统--(ssm+uinapp+Mysql)
    Android Studio Giraffe 添加 maven { url “https://jitpack.io“ }报错
  • 原文地址:https://blog.csdn.net/weixin_42753193/article/details/126521663
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号