不定项选择题,共6题,全部答对20分,答对部分10分,选错、选多0分;满分120分。
关于select和where,以下说法正确的是
select控制列,where控制列
select控制行,where控制列
select控制行,where控制行
select控制列,where控制行
关于SQL中LEFT()、SUBSTR()(或SUBSTRING()),和RIGHT()函数,下列陈述哪些是正确的?
LEFT()
SUBSTR()
SUBSTRING()
RIGHT()
RIGHT()函数用于从字符串的右边开始提取指定数量的字符。
SUBSTR()可以接受三个参数:字符串、起始位置和长度;而LEFT()和RIGHT()只接受两个参数:字符串和长度。
LEFT()函数用于从字符串的左边开始提取指定数量的字符。
SUBSTR()函数只能从字符串的中间部分提取子串,不能从字符串的开头或结尾提取。
有一张表,num_test,表结构及所有数据如下。
以下说法正确的是:
select avg(a) from num_test = select avg(c) from num_test
select max(c) from num_test = select min(c) from num_test
select min(c) from num_test = select max(b) from num_test
select max(a) from num_test = select max(c) from num_test
关于SQL中的LEFT JOIN操作,下列陈述哪些是正确的?
LEFT JOIN
LEFT JOIN只返回两个表中完全匹配的记录。
LEFT JOIN会移除左表中那些在右表找不到匹配项的行。
在使用LEFT JOIN时,可以确保左表中的每一行都至少出现在一次结果集中,即便它在右表中没有对应的匹配行。
如果左表的某一行在右表中没有匹配项,那么该行的结果将包括左表的所有列以及右表对应位置上的NULL值。
考虑有一个名为sales的表,包含字段employee_id, sale_amount, sale_date。为了找出每个员工每个月销售额最高的记录,并且需要确保即使有多个相同最高销售额的记录也能被选中,应该使用下列哪个窗口函数?
sales
employee_id
sale_amount
sale_date
ROW_NUMBER() OVER (PARTITION BY employee_id, MONTH(sale_date) ORDER BY sale_amount DESC)
RANK() OVER (PARTITION BY employee_id, MONTH(sale_date) ORDER BY sale_amount DESC)
DENSE_RANK() OVER (PARTITION BY MONTH(sale_date) ORDER BY sale_amount DESC)
DENSE_RANK() OVER (PARTITION BY employee_id, MONTH(sale_date) ORDER BY sale_amount DESC)
假设你正在为一个在线平台进行数据分析,该平台记录了用户的登录活动。为了评估平台的表现,管理层希望了解月活跃用户数(MAU)以及每月的环比增长率。月活跃用户是指在一个自然月内至少有一次登录活动的用户。环比增长率是本月的MAU与上个月MAU相比的增长百分比。考虑以下表结构:
user_logins 表包含字段:user_id, login_date。
每次用户登录都会在 user_logins 表中插入一条新记录。
根据上述描述,下面的说法哪一个是正确的?
可以通过 COUNT(DISTINCT user_id) 来计算每个月的活跃用户数量,并且使用 LAG() 窗口函数来计算环比增长率。
如果某个月的MAU低于上个月,则不能计算环比增长率。
环比增长率只能通过存储过程来计算,无法直接用SQL查询实现。
计算环比增长率时,应该使用 (本月MAU - 上月MAU) / 本月MAU * 100 的公式。