Leetcode sql50基础题最后的4题啦

算是结束了这个阶段了,之后的怎么学习mysql的方向还没确定,但是不能断掉,而且路是边走边想出来的。我无语了写完了我点进去看详情都不让,还得重新开启计划,那我之前的题解不都没有了!!

1.第二高的薪水相关的表和题目如下

我尝试的办法都不行,但是都不知道为什么,于是还是看题解了,题解有下面两种方式。

select (select distinct salary  from employee  order by salary desc limit 1 offset 1)as SecondHighestSalary;

select (select distinct salary  from employee  order by salary desc limit 1,1)as SecondHighestSalary ;

这才发现原来这题也不难但是居然可以select 表名,而且结合之前的题distinct感觉有些限制,但是目前不清楚。

limit 两个参数的话,第一个参数表示从第几条开始输出,计数是从0开始的,第二个参数表示需要输出多少条记录;

limit 一个参数的话,表示输出几条参数,也就是说没有0哦,因为是0的话没意义(这里妄下论断了啊,具体我摆烂了)。

limit n offset n 表示输出n条记录,从第一条偏离n条开始输出。

2.按日期分组销售产品相关的表和题目如下

这个也不难,就是最后一个输出按照词典序排列不会,格式如下。

我先利用concat()尝试的结果和代码如下,没成功,于是百度。

发现可以利用group_concat(),他的用法如下,这里面的各种用法这个题目都运用上了。

而且我发现我题目还理解错了,不需要利用两个字段进行分组,修改后的代码如下

select sell_date,count(distinct product) as num_sold,group_concat(product order by product separator ',')as product from activities group by sell_date order by sell_date;

把count(*)换成了count(distinct product),只group by sell_date,但是还是错了,结果图如下。

我还是没想到,因为之前有过错误,order by 后面不能加distinct,然后我看题解我发现只要将通过group_concat()拼接的product加上distinct就行,我被自己蠢到了,没事我原谅我自己了。提交的时候发现别名products写成了product,下面是改了之后的正确的题解。

select sell_date,count(distinct product) as num_sold,group_concat(distinct product order by product separator ',')as products from activities group by sell_date order by sell_date;

3.列出指定时间段内所有的下单产品相关的表和题目如下

从题目看来很简单,就是有点不仔细,有些关键字没写仔细,正确的题解如下。

select product_name,sum(unit) as unit from products p join orders o on p.product_id=o.product_id where order_date>='2020-02-01' and order_date <'2020-03-01' group by p.product_id having unit>=100;

4.查找拥有有效邮箱的用户相关的表和题目如下

很明显是用正则表达式,然后变百度边思考怎么写,以下是我结合白的的四种错误答案,但是我目前还不知道为什么,我打算之后出一个正则系列的笔记,今天有些事打乱了我原来的计划不方便开电脑,然后删照片的时候看到以前的截图没忍住去看了小说,嘿嘿,就没能很快的写。

(1)

(2)

(3)

(4)

正确的题解如下,反复测试还不知道为什么,说明正则表达式很不熟练,需要多多练习。

select * from users where mail regexp '^[a-z,A-Z][a-zA-Z0-9\_\.\-]*@leetcode[.]com$';

5.总结

目前mysql告了小小的一个段落,很多原理都不知道,但是我尝试了,尝试一件以前一直没有力气做的事情,其实就已经进步了,做了就是在进步,即使现在是止步不前但那有可能是因为看的这个维度止步不前,而其他的维度你一定进步了,我可以肯定。体验过本身就是财富,希望我写的博客能帮到你们,其他的我还要努力,加油加油!!

Vivado2023是一款集成开发环境软件,用于设计和验证FPGA(现场可编程门阵列)和可编程逻辑器件。对于使用Vivado2023的用户来说,license是必不可少的。 Vivado2023的license是一种许可证,用于授权用户合法使用该软件。许可证分为多种类型,包括评估许可证、开发许可证和节点许可证等。每种许可证都有不同的使用条件和功能。 评估许可证是免费提供的,让用户可以在一段时间内试用Vivado2023的全部功能。用户可以使用这个许可证来了解软件的性能和特点,对于初学者和小规模项目来说是一个很好的选择。但是,使用评估许可证的用户在使用期限过后需要购买正式的许可证才能继续使用软件。 开发许可证是付费的,可以永久使用Vivado2023的全部功能。这种许可证适用于需要长期使用Vivado2023进行开发的用户,通常是专业的FPGA设计师或工程师。购买开发许可证可以享受Vivado2023的技术支持和更新服务,确保软件始终保持最新的版本和功能。 节点许可证是用于多设备或分布式设计的许可证,可以在多个计算机上安装Vivado2023,并共享使用。节点许可证适用于大规模项目或需要多个处理节点进行设计的用户,可以提高工作效率和资源利用率。 总之,Vivado2023 license是用户在使用Vivado2023时必须考虑的问题。用户可以根据自己的需求选择合适的许可证类型,以便获取最佳的软件使用体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值