请从试卷作答记录表中找到SQL试卷得分不小于该类试卷平均得分的用户最低得分。 示例数据 exam_record表(uid用户ID, exam_id试卷ID, start_time开始作答时间, submit_time交卷时间, score得分):
时间: 2024-10-16 12:06:56 浏览: 50
要从考试记录表中找到SQL试卷得分不小于该类试卷平均得分的用户最低得分,你可以使用如下的SQL查询语句:
首先,假设你有一个`exam_category`表(category_id试卷类别ID, average_score类别平均分),你需要获取每个试卷类型的平均分。然后,在`exam_record`表中计算满足条件的用户的最低得分。以下是两个相关查询的组合:
```sql
WITH avg_scores AS (
SELECT category_id, AVG(score) as avg_score
FROM exam_record
GROUP BY category_id
)
SELECT er.uid, MIN(er.score) as min_score
FROM exam_record er
JOIN avg_scores ON er.exam_id = avg_scores.category_id AND er.score >= avg_scores.avg_score
GROUP BY er.uid
ORDER BY min_score;
```
这个查询首先创建了一个名为`avg_scores`的临时视图,其中包含了每张试卷类型的平均分数。然后,它通过`JOIN`将`exam_record`表与`avg_scores`视图联接起来,并过滤出那些得分大于等于平均分的记录。最后,对每个用户的所有符合条件的得分取最小值。
相关问题
请删除 exam_record 表中未完成作答或作答时间小于5分钟整的记录中,开始作答时间最早的3条记录。用oracle语法
可以使用以下 Oracle SQL 语句来删除 exam_record 表中未完成作答或作答时间小于 5 分钟整的记录中,开始作答时间最早的 3 条记录:
```
DELETE FROM exam_record
WHERE exam_time < 5 OR finished = 0
AND ROWID IN (
SELECT ROWID
FROM exam_record
WHERE exam_time < 5 OR finished = 0
ORDER BY start_time ASC
FETCH FIRST 3 ROWS ONLY
);
```
其中,`exam_record` 是要删除记录的表名,`exam_time` 是作答时间,`finished` 表示是否完成作答,`start_time` 是开始作答时间。这个语句会删除表中未完成作答或作答时间小于 5 分钟整的记录中,开始作答时间最早的 3 条记录。
1.1.创建分区表user_info分区字段为register_time 2.请计算每张SQL类别试卷发布后,当天5级以上的用户作答的人数uv和平均分avg_score,按人数降序,相同人数的按平均分升序,示例数据结果输出如下
在创建分区表`user_info`时,如果我们将分区字段设置为`register_time`,这意味着用户信息将按照注册时间的不同区间进行分割存储,这样可以提高查询效率,特别是当针对特定时间段的数据有频繁查询需求时。
要计算每张SQL类别试卷发布后,当天达到5级及以上的用户作答的人数(uv,User Volume,即独立访客数)和平均分(avg_score),你可以使用以下SQL语句(假设有一个名为`test_paper_answers`的表记录了用户的答题情况,包含`user_id`, `paper_id`, `score`字段):
```sql
CREATE TABLE IF NOT EXISTS user_info PARTITION BY register_time (
-- 其他表结构...
);
-- 每天的分区表名示例,如:user_info_20230101
SELECT
publish_date,
COUNT(DISTINCT user_id) AS uv,
AVG(score) AS avg_score
FROM
test_paper_answers
JOIN
user_info ON user_info.user_id = test_paper_answers.user_id
WHERE
paper_id IS NOT NULL AND score >= 5
GROUP BY
publish_date
ORDER BY
uv DESC, avg_score ASC;
-- 示例结果输出:
-- publish_date | uv | avg_score
-- ------------+--------+----------
-- 2023-01-01 | 100 | 4.8
-- 2023-01-02 | 75 | 5.2
-- ... | ... | ...
--
阅读全文