gpt4 book ai didi

sql - 使用单个 sql 查询选择多组行

转载 作者:行者123 更新时间:2023-12-04 21:05:21 25 4
gpt4 key购买 nike

我有一个像这样列出的问题表..

身份证 |问题 |回答 |教学大纲 |困难

我想创建一个 SQL 语句,当难度很容易时,为每个不同的教学大纲随机选择 5 个问题。

因此,如果有 4 个教学大纲,我将有 20 个问题。

我在想这样的事情......

   SELECT 
*
FROM
questions
WHERE
difficulty='easy'
AND
syllabus
IN
(
SELECT DISTINCT
syllabus
FROM
questions
WHERE
difficulty='easy'
)
LIMIT
(5*
(
SELECT
COUNT(DISTINCT syllabus)
FROM
questions
WHERE
difficulty='easy'
)

但这不会从每个不同的教学大纲中返回 5 个,而只是从任何教学大纲中返回正确数量的问题。

最佳答案

这会起作用,但会很慢:

SELECT * FROM questions WHERE difficulty='easy' ORDER BY RAND() LIMIT 5;

更好的方法是先选择 5 个 ID,然后检索与这些 ID 对应的行。可以使用 WHERE ID > RAND(0,MAX(ID)) 来选择 ID 本身,但如果存在间隙,则您的数据将出现偏差。

这里讨论了一个更好的替代方案,但需要更多的努力: Simple Random Samples from a Sql database

关于sql - 使用单个 sql 查询选择多组行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7878203/

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