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$';