不定项选择题,共6题,全部答对20分,答对部分10分,选错、选多0分;满分120分。
关键词 IN,最可能与如下哪个关键词互换,达到一致的输出目的?
AND
NOT
HAVING
OR
关于DAYOFWEEK函数,以下说法正确的是?
DAYOFWEEK
DAYOFWEEK('2025-02-23') 返回1
DAYOFWEEK('2025-02-23')
返回值的范围是0-6,0表示周日
DAYOFWEEK的参数必须是DATE类型
DATE
返回值的范围是1-7,1表示周一
关于SQL中CASE WHEN表达式的性质,下列陈述哪些是正确的?
CASE WHEN表达式必须以END关键字结束。
CASE WHEN只能用于SELECT语句中,不能用于WHERE、ORDER BY或HAVING子句。
CASE WHEN允许在一个查询中根据多个条件返回不同的值。
如果没有匹配的WHEN条件,且提供了ELSE子句,则ELSE子句的值会被返回。
关于SQL中的LEFT JOIN操作,下列陈述哪些是正确的?
LEFT JOIN
如果左表的某一行在右表中没有匹配项,那么该行的结果将包括左表的所有列以及右表对应位置上的NULL值。
LEFT JOIN只返回两个表中完全匹配的记录。
LEFT JOIN会移除左表中那些在右表找不到匹配项的行。
在使用LEFT JOIN时,可以确保左表中的每一行都至少出现在一次结果集中,即便它在右表中没有对应的匹配行。
考虑有一个名为sales的表,包含字段employee_id, sale_amount, sale_date。为了找出每个员工每个月销售额最高的记录,并且需要确保即使有多个相同最高销售额的记录也能被选中,应该使用下列哪个窗口函数?
sales
employee_id
sale_amount
sale_date
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)
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)
用SQL计算月度新用户的次月留存率,以下说法正确的是:
无需使用窗口函数,也能完成次月留存率的计算。
计算次月留存率时,应该只考虑那些在第一个月之后恰好一个月内有重复活动的用户。
留存率可以用公式表示为:(下个月活跃的新用户数量 / 第一个月的新用户总数) * 100。
识别新用户需要使用MAX()聚合函数来找到每个用户的首次活动日期。