Mega Code Archive

 
Categories / Oracle PLSQL / Numeric Math Functions
 

Rounding Up and Down

SQL> SQL> CREATE TABLE SAT (   2     StudentID  INT NOT NULL,   3     ExamID     INT NOT NULL,   4     Mark       INT,   5     IfPassed   SMALLINT,   6     Comments   VARCHAR(255),   7     CONSTRAINT PK_SAT PRIMARY KEY (StudentID, ExamID)); Table created. SQL> SQL> SQL> INSERT INTO SAT (StudentID,ExamID,Mark,IfPassed,Comments) VALUES (1,1,55,1,'Satisfactory'); 1 row created. SQL> INSERT INTO SAT (StudentID,ExamID,Mark,IfPassed,Comments) VALUES (1,2,73,1,'Good result'); 1 row created. SQL> INSERT INTO SAT (StudentID,ExamID,Mark,IfPassed,Comments) VALUES (2,3,44,1,'Hard'); 1 row created. SQL> INSERT INTO SAT (StudentID,ExamID,Mark,IfPassed,Comments) VALUES (2,5,39,0,'Simple'); 1 row created. SQL> INSERT INTO SAT (StudentID,ExamID,Mark,IfPassed) VALUES (2,6,63,1); 1 row created. SQL> SQL> SQL> SELECT StudentID, AVG(CAST(Mark AS FLOAT)) AS AverageMark,   2         FLOOR(AVG(CAST(Mark AS FLOAT))) AS RoundDown,   3         CEIL(AVG(CAST(Mark AS FLOAT))) AS RoundUp,   4         ROUND(AVG(CAST(Mark AS FLOAT)), 0) AS ClosestInt   5  FROM SAT   6  GROUP BY StudentID;  STUDENTID AVERAGEMARK  ROUNDDOWN    ROUNDUP CLOSESTINT ---------- ----------- ---------- ---------- ----------          1          64         64         64         64          2  48.6666667         48         49         49 2 rows selected. SQL> SQL> SQL> SQL> drop table SAT; Table dropped.