mysql left right

LEFT 与 RIGHT

LEFT & RIGHT 练习

  1. accounts 表格中,有一个列存储的是每个公司的网站。最后三个数字表示他们使用的是什么类型的网址。此处给出了扩展(和价格)列表。请获取这些扩展并得出 accounts表格中每个网址类型的存在数量。

  2. 对于公司名称(甚至名称的第一个字母)的作用存在颇多争议(https://www.quora.com/Does-a-companys-name-matter)。请从%E3%80%82%E8%AF%B7%E4%BB%8E) accounts 表格中获取每个公司名称的第一个字母,看看以每个字母(数字)开头的公司名称分布情况。

  3. 使用 accounts 表格和 CASE 语句创建两个群组:一个是以数字开头的公司名称群组,另一个是以字母开头的公司名称群组。以字母开头的公司名称所占的比例是多少?

  4. 元音是指 aeiou。有多少比例的公司名称以元音开头,以其他音节开头的公司名称百分比是多少?

LEFT & RIGHT 解决方案

1.

SELECT RIGHT(website, 3) AS domain, COUNT(*) num_companies
FROM accounts
GROUP BY 1
ORDER BY 2 DESC;

结果:

2.

SELECT LEFT(UPPER(name), 1) AS first_letter, COUNT(*) num_companies
FROM accounts
GROUP BY 1
ORDER BY 2 DESC;

3.

SELECT SUM(num) nums, SUM(letter) letters
FROM (SELECT name, CASE WHEN LEFT(UPPER(name), 1) IN ('0','1','2','3','4','5','6','7','8','9') 
                       THEN 1 ELSE 0 END AS num, 
         CASE WHEN LEFT(UPPER(name), 1) IN ('0','1','2','3','4','5','6','7','8','9') 
                       THEN 0 ELSE 1 END AS letter
      FROM accounts) t1;

有 350 个公司名称以字母开头,1 个公司以数字开头。因此有 350/351 的公司名称以字母开头,即百分比是 99.7%。

4.

SELECT SUM(vowels) vowels, SUM(other) other
FROM (SELECT name, CASE WHEN LEFT(UPPER(name), 1) IN ('A','E','I','O','U') 
                        THEN 1 ELSE 0 END AS vowels, 
          CASE WHEN LEFT(UPPER(name), 1) IN ('A','E','I','O','U') 
                       THEN 0 ELSE 1 END AS other
         FROM accounts) t1;

有 80 的公司名称以元音开头,271 的公司以其他音节开头。元音的比例是 80/351,或 22.8%。因此,有 77.2% 的公司名称没有以元音开头。

猜你喜欢

转载自blog.csdn.net/qq_35892623/article/details/81349408