Sunil Kumar
Sunil Kumar

Reputation: 1

Sum Of mysql table record

I have a table named tbl_Question and a column named INT_MARK which has different marks for different questions. Like this:

VH_QUESTION     INT_MARK
-----------     --------
Q1              2
Q2              4

My question is: How to get a random set of 20 questions whose total sum of marks is 50?

Upvotes: 0

Views: 135

Answers (4)

Quick answer

SELECT * ,SUM(INT_MARK) as total_mark FROM tbl_Question  
GROUP BY VH_QUESTION
HAVING total_mark="50"
ORDER BY RAND()
LIMIT 5

it returns 0 line when no answers are possible but each time it finds one the questionsare random.

You could check the benchmark to see if you can have a faster query for large tables.

Upvotes: 0

AnandPhadke
AnandPhadke

Reputation: 13506

select VH_QUESTION, sum(INT_MARK) from tbl_Question
group by VH_QUESTION
having sum(INT_MARK) >= 50 
order by rand() limit 20

Upvotes: 0

solaimuruganv
solaimuruganv

Reputation: 29807

select VH_QUESTION, sum(INT_MARK) from tbl_Question
 group by VH_QUESTION
having sum(INT_MARK) > 50 
order by rand() limit 1

Upvotes: 1

mgarciaisaia
mgarciaisaia

Reputation: 15620

I think this question may help you - seems a very similar problem.

If that don't work, I'd try to divide the problem in two: first, you make a combinatory of your questions. Then, you filter them by it's sum of points.

I couldn't find, however, how to produce all combinations of the table. I don't know how difficult that would be.

Upvotes: 0

Related Questions