问题:找到昵称以"牛客"+纯数字+"号"或者纯数字组成的用户对于字母c开头的试卷类别(如C,C++,c#等)的已完成的试卷ID和平均得分,按用户ID、平均分升序排序

关键点1:名字里是纯数字 ,这里我也没弄明白,网上搜的筛选纯数字的方法

nike_name regexp '[^0-9.]'=0

关键点2:以C开头。这里用正则表达式 regexp '^c'即可,这里逻辑不区分大小写,^表达以c为开头的筛选条件。

其他都很简单。以上。

SELECT uid, exam_id, ROUND(AVG(score)) avg_score FROM exam_record 
WHERE uid in
	(SELECT uid FROM user_info 
	WHERE nick_name REGEXP '[^0-9.]'=0
	OR nick_name LIKE '牛客%号')
AND exam_id IN 
	(SELECT exam_id FROM examination_info 
	WHERE tag REGEXP '^c')
AND score IS NOT NULL
GROUP BY uid, exam_id 
ORDER BY uid, avg_score