我有一个名为tbl_Question
的表和一个名为INT_MARK
的列,它对不同的问题有不同的标记。像这样:
VH_QUESTION INT_MARK
----------- --------
Q1 2
Q2 4
我的问题是:如何获得一个随机的20个问题,其总分为50?
答案 0 :(得分:1)
select VH_QUESTION, sum(INT_MARK) from tbl_Question
group by VH_QUESTION
having sum(INT_MARK) > 50
order by rand() limit 1
答案 1 :(得分:0)
我认为this question可能对您有所帮助 - 似乎是一个非常相似的问题。
如果这不起作用,我会尝试将问题分成两部分:首先,你将问题结合起来。然后,你用它们的总和来过滤它们。
但是,我找不到如何制作表格的所有组合。我不知道会有多难。答案 2 :(得分:0)
select VH_QUESTION, sum(INT_MARK) from tbl_Question
group by VH_QUESTION
having sum(INT_MARK) >= 50
order by rand() limit 20
答案 3 :(得分:0)
快速回答
SELECT * ,SUM(INT_MARK) as total_mark FROM tbl_Question
GROUP BY VH_QUESTION
HAVING total_mark="50"
ORDER BY RAND()
LIMIT 5
当没有答案时它会返回0行,但每次找到一个问题都是随机的。
您可以查看基准,看看您是否可以更快地查询大型表格。