স্ট্রোড ফাংশন (STORED FUNCTION) তৈরি করে নির্দিষ্ট শর্তের গড় মান (AVG) রিটার্ন করা যায়।
উদাহরণ:
টেবিল তৈরি:
CREATE TABLE DemoTable638 (Name VARCHAR(100), Marks INT);
রেকর্ড যোগ করা:
INSERT INTO DemoTable638 VALUES
('John', 67), ('John', 90), ('David', 99), ('John', 60);
সব রেকর্ড দেখানো:
SELECT * FROM DemoTable638;
আউটপুট:
+-------+-------+ | Name | Marks | +-------+-------+ | John | 67 | | John | 90 | | David | 99 | | John | 60 | +-------+-------+
ফাংশন তৈরি (John-এর গড় মার্কস):
SET GLOBAL log_bin_trust_function_creators = 1;
DELIMITER //
CREATE FUNCTION getAverageDemo() RETURNS INT
BEGIN
DECLARE value INT;
SELECT AVG(Marks) INTO value FROM DemoTable638 WHERE Name = 'John';
RETURN value;
END //
DELIMITER ;
ফাংশন কল:
SELECT getAverageDemo();
ফলাফল:
+------------------+ | getAverageDemo() | +------------------+ | 72 |
ব্যাখ্যা: (67+90+60)/3 = 72.333 → INT রিটার্ন টাইপের কারণে ৭২। log_bin_trust_function_creators = 1 বাইনারি লগিংয় থাকলে ফাংশন তৈরির জন্য দরকার। DETERMINISTIC কিওয়ার্ড যোগ করলে অপ্টিমাইজেশন হয়। ফাংশনে প্যারামিটার নিলে (যেমন name VARCHAR(100)) আরও রিয়ูজেবল হতো।