力扣数据库题库学习(4.25日)

1484. 按日期分组销售产品

问题链接
问题图片

思路与分析

编写解决方案找出每个日期、销售的不同产品的数量及其名称。
每个日期的销售产品名称应按词典序排列。
返回按 sell_date 排序的结果表。

我来分析一下,这里的题目要求其实就是统计不同日期下的销售产品数,以及产品名称,再指定排序方法。这道题考的就是数据库的分组,以及对分组内数据的处理,这道题使用了COUNT,GROUP_CONCAT关键字。
这个要求我们可以使用分组实现,再加上COUNT(DISTINCT product)统计每组内不重复的product数据量,使用GROUP_CONCAT将product字段链接,要求的排序ORDER BY product ASC即可

解答

sql语句如下:

SELECT 
    sell_date,
    COUNT(DISTINCT product) AS num_sold,
    GROUP_CONCAT(DISTINCT product ORDER BY product ASC) AS products
FROM 
    Activities
GROUP BY 
    sell_date
ORDER BY 
    sell_date;

1517. 查找拥有有效邮箱的用户

问题链接
问题图片

思路与分析

编写一个解决方案,以查找具有有效电子邮件的用户。
一个**有效的电子邮件具有前缀名称和域**,其中:
前缀 名称是一个字符串,可以包含字母(大写或小写),数字,下划线 '_' ,点 '.' 和/或破折号 '-' 。前缀名称   	必须 以字母开头。
域 为 '**@leetcode.com**' 。
以任何顺序返回结果表。

这道题其实考的就是数据库的WHERE针对字段的匹配以及正则的使用,这里我们可以使用 REGEXP 关键字匹配符合指定模式的电子邮件地址。
这里的正则表达式:

'^[a-zA-Z][a-zA-Z0-9_.-]*@leetcode\\.com$'

完整的代码如下

解答

SELECT user_id,name,mail
FROM Users
WHERE mail REGEXP '^[a-zA-Z][a-zA-Z0-9_.-]*@leetcode\\.com$';
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jesse_Kyrie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值