3059. 找到所有不同的邮件域名 🔒
题目描述
表:Emails
+-------------+---------+ | Column Name | Type | +-------------+---------+ | id | int | | email | varchar | +-------------+---------+ id 是这张表的主键(有不同值的列)。 这张表的每一行包含一个电子邮件地址。电子邮件地址不包含大写字母。
编写一个解决方案来找到所有 不同的电子邮件域名 并且计数与每个域名相关联的 记录。只考虑 以 .com 结尾 的域名。
返回结果表以 email_domains 升序 排列。
结果格式如下所示。
示例 1:
输入: Emails 表: +-----+-----------------------+ | id | email | +-----+-----------------------+ | 336 | hwkiy@test.edu | | 489 | adcmaf@outlook.com | | 449 | vrzmwyum@yahoo.com | | 95 | tof@test.edu | | 320 | jxhbagkpm@example.org | | 411 | zxcf@outlook.com | +----+------------------------+ 输出: +--------------+-------+ | email_domain | count | +--------------+-------+ | outlook.com | 2 | | yahoo.com | 1 | +--------------+-------+ 解释: - 以“.com”结束的合法域名只有“outlook.com”和“yahoo.com”,数量分别为 2 和 1。 输出表以 email_domains 升序排列。
解法
方法一:使用 SUBSTRING_INDEX
函数 + 分组统计
我们先筛选出所有以 .com
结尾的邮箱,然后使用 SUBSTRING_INDEX
函数提取出邮箱的域名,最后使用 GROUP BY
统计每个域名的个数。
1 2 3 4 5 6 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|