SELECT tag, difficulty, ROUND((SUM(score)-MIN(score)-MAX(score))/(COUNT(score)-2), 1)
FROM examination_info a
JOIN exam_record b
# using(exam_id)
ON a.exam_id = b.exam_id
WHERE tag = 'SQL' AND difficulty = 'hard';

抄的第一名的代码,惊呆我了。上一版我还用窗口函数进行排序,是考虑到万一有两个最大值或最小值呢,但是题目中去掉的是一个最大值,就不影响

截断平均值也就是把一个最大值和最小值从总和中删掉,然后除以总数-2即可

看到大佬的using有点不懂,查了下才知道是使用两个表共同的列,等价于下面的on