找到昵称以"牛客"+纯数字+"号"或者纯数字组成的用户对于字母c开头的试卷类别(如C,C++,c#等)的已完成的试卷ID和平均得分。写出sqlserver中的查询语句
时间: 2024-04-14 08:25:59 浏览: 12
你可以使用 SQL Server 的 `LIKE` 和 `PATINDEX` 函数结合起来实现这个查询。下面是一个示例的查询语句:
```sql
SELECT p.paper_id, AVG(s.score) AS average_score
FROM papers p
JOIN scores s ON p.paper_id = s.paper_id
JOIN users u ON s.user_id = u.user_id
WHERE (u.nickname LIKE '牛客[0-9]%号' OR u.nickname LIKE '[0-9]%')
AND p.category LIKE 'C%'
GROUP BY p.paper_id
```
在上面的查询语句中,我假设你有以下几张表:
1. `papers` 表:包含试卷信息,其中 `paper_id` 是试卷的唯一标识,`category` 是试卷类别。
2. `scores` 表:包含试卷得分信息,其中 `paper_id` 是试卷的唯一标识,`score` 是得分。
3. `users` 表:包含用户信息,其中 `user_id` 是用户的唯一标识,`nickname` 是用户的昵称。
你可以根据实际情况替换上面查询语句中的表名和列名。在查询语句中,我使用了两个条件来筛选用户和试卷:
1. `u.nickname LIKE '牛客[0-9]%号' OR u.nickname LIKE '[0-9]%'
这个条件用于匹配昵称以"牛客"+纯数字+"号"或者纯数字的用户。
2. `p.category LIKE 'C%'`
这个条件用于匹配试卷类别以字母"c"开头的试卷。
最后,通过 `GROUP BY` 和 `AVG` 函数来计算每个试卷的平均得分。
请注意,以上只是一个示例查询语句,你需要根据你的实际表结构和数据来进行适当的修改。