SQL डेटाबेस में डेटा मानों के सेट के साथ काम करने में अच्छा है, लेकिन डेटा मानों के सेट पर इतना अच्छा नहीं है जो नहीं हैं डेटाबेस में।
सबसे अच्छा समाधान यह है कि आप उन मानों के लिए एक छोटी तालिका रखें जिनकी आपको आवश्यकता है:
CREATE TABLE ScoreValues (score int);
INSERT INTO ScoreValues (score)
VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
आपकी टिप्पणी को देखते हुए कि आप किसी अन्य तालिका में किसी परीक्षण के अधिकतम अंक निर्धारित करते हैं, आप उस तालिका में निम्न तरीके से शामिल हो सकते हैं, जब तक कि ScoreValues
निश्चित रूप से मान कम से कम उच्च या उच्चतम परीक्षण के अधिकतम अंकों से अधिक हों:
SELECT v.score, COUNT(tr.score) AS 'NumStudents'
FROM ScoreValues v
JOIN Tests t ON (v.score <= t.maxmarks)
LEFT OUTER JOIN TestResults tr ON (v.score = tr.score AND t.testid = tr.testid)
WHERE t.testid = 'mytestid'
GROUP BY v.score;