gpt4 book ai didi

sql-server - 我想从每个类别的表中选择随机问题

转载 作者:搜寻专家 更新时间:2023-10-30 23:45:41 25 4
gpt4 key购买 nike

需要 SQL Server 2005 查询,请帮忙。

我有一张表格,上面有问题,所有问题都按 TopicWise 分类。

Table Questions

另一个表格包含主题及其在主题中的权重

Table Topics

现在,我需要从表 QUESTIONS 中随机选择 50 个问题,这些问题基于主题的权重,就像在 50 个随机选择的问题中必须有

5 questions from Subtopic_Id=1 and    
15 questions from Subtopic_Id=2 and
10 questions from Subtopic_Id=3 and
10 questions from Subtopic_Id=4 and
10 questions from Subtopic_Id=5

参见第二张图片(表格主题)

并且主题的数量和它们的权重在不同的主题中可能会有所不同,因此 union 语句对于动态查询来说不是一个好主意。

对于这个选择,我什至没有想出一行代码。

最佳答案

您可以在 TOP 子句中使用列值。不是常识,但可以做到。

您可以在 TOP 子句中使用 TopicWeightage 列。

可以做到,但您很少有机会编写这样的查询。您碰巧处于这种情况,因此解决方案类似于.....

SELECT Q.ExamQ_ID
FROM TopicTable t
CROSS APPLY (
SELECT TOP (t.TopicWeightage) ExamQ_ID
FROM Questions
WHERE SubjTopicID = t.SubjTopic_ID
ORDER BY NEWID()
) Q(ExamQ_ID)

关于sql-server - 我想从每个类别的表中选择随机问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28974705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com