[英]Calculate Average of the largest values in multiple columns
I have this table我有这张桌子
[1|Sub1|Mark1|Sub2|Mark2|Subj3|Mark3|...]
[2|JSP |85 |ASP |70 |PHP |95 |...]
I need the average Marks of the two highest subjects?我需要两个最高科目的平均分吗?
For example例如
May be are you asking this?可能是你问这个?
SELECT ID,
(SELECT AVG(v)
FROM (VALUES (Mark1), (Mark2), (Mark3), (Mark4), (Mark5)) AS value(v)) as [AverageMarks]
FROM Table1
If you are looking for only Average of 2 highest subjects among 3 subjects then try this.如果您只在 3 个科目中寻找 2 个最高科目的平均分,那么试试这个。
SELECT ID,
(SELECT (SUM(v)-MIN(V))/2
FROM (VALUES (Mark1), (Mark2), (Mark3)) AS value(v)) as [AverageMarks]
FROM Table1
Consider the following:考虑以下:
DROP TABLE IF EXIST my_table;
CREATE TABLE my_table
(subject CHAR(3) PRIMARY KEY
,mark INT NOT NULL
);
INSERT INTO my_table VALUES
('JSP',85),
('ASP',70),
('PHP',95);
SELECT AVG(a.mark)
FROM
( SELECT mark FROM my_table ORDER BY mark DESC LIMIT 2 ) a;
+-------------+
| AVG(a.mark) |
+-------------+
| 90.0000 |
+-------------+
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.