oracle怎么查平均分 oracle查询学生平均成绩及其名次

oracle :如何查询几个给定数的平均值,假如有一下几个数:0,1,2 , 5 , 6 , 7 查询结果为:4select avg(rn) from (select rownum rn from tabl where rownum999)
where rn in (0oracle怎么查平均分 , 1oracle怎么查平均分,2oracle怎么查平均分,5oracle怎么查平均分,6,7)
tab1随便找一张数据行数大于oracle怎么查平均分你最大数的就行
oracle 取平均值你好,如果格式都如你贴图的一样的话可以用这种最笨的方式全一个个化成数值型,然后相加取值 。
select CHECK_NORM,
(to_number(substr(CHECK_INFO, 1, 4))
to_number(substr(CHECK_INFO, 6, 4))
to_number(substr(CHECK_INFO, 11, 4))
to_number(substr(CHECK_INFO, 16, 4))
to_number(substr(CHECK_INFO, 21, 4))
to_number(substr(CHECK_INFO, 26, 4))
to_number(substr(CHECK_INFO, 31, 4))
to_number(substr(CHECK_INFO, 36, 4))
to_number(substr(CHECK_INFO, 41, 4))
to_number(substr(CHECK_INFO, 46, 4))) / 10
from 表名;
如果格式不统一,建议如2楼的,把字符型中的‘/’全部替换成‘ ’ , 然后拼接出来一个sql,执行处理 。
望采纳,谢谢 。
oracle的SQL语句中,查询每个学生的的学号、姓名、平均成绩,结果按平均成绩降序排列 。你 select 后面只写了sno 。。。没有avg成绩,但是最后group by 了,当然会报错 。还有你的sno没有指明是哪个表的,后面带了x和y , sc表也需要指明 。
平均成绩也没搞明白 。。
那只能这样
selecta.sno,a.name,avg(b.score) as avgscoresfrom sc a,course b where a.sno =b.snoand b.cno in ('001','002') group by a.sno,a.nameorder by avgscoresdesc
oracle怎么查询每年每月中零点到四点的平均值?写个大概意思 , 毕竟我并不知道你的表结构是什么样的 。
你的表格是什么样的,特别是回见结构,如果是“年月日时分秒”结构的,那么首先单独截取"时"(不是截取年月日时,而是单独截取时),截取范围是4 , 这样出来的结果是每天0-4点的所有值 。
然后开始考虑分组,你说的是每年每月的平均值,那么分组应该是“年月”,然后再avg一下你要平均的值应该就可以了 。
oracle查询按记录个数,按比例汇总后求平均值可以参考如下:
CREATE TABLE TEMP_AVG_SCORE
(T_DATA DATE,
T_NAME VARCHAR2(10),
T_SCORE NUMBER(10)
) ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-01-01','YYYY-MM-DD'),'A',30) ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-01-10','YYYY-MM-DD'),'A',40) ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-01-15','YYYY-MM-DD'),'A',35) ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-02-01','YYYY-MM-DD'),'B',120) ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-02-10','YYYY-MM-DD'),'B',130) ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-02-15','YYYY-MM-DD'),'B',150) ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-02-20','YYYY-MM-DD'),'B',140) ;
COMMIT;
SELECT T.T_NAME 人员,
AVG(CASE
WHEN TO_CHAR(T.T_DATA, 'MM') = '01' AND T.NUM = 3 THEN
CASE
WHEN RN = 1 THEN
T.T_SCORE * 120 / 100
WHEN RN = 2 THEN
T.T_SCORE * 100 / 100
ELSE
T.T_SCORE * 80 / 100
END
WHEN TO_CHAR(T.T_DATA, 'MM') = '01' AND T.NUM = 4 THEN
CASE
WHEN RN = 1 THEN
T.T_SCORE * 120 / 100
WHEN RN = 2 THEN
T.T_SCORE * 110 / 100
WHEN RN = 3 THEN
T.T_SCORE * 90 / 100
ELSE
T.T_SCORE * 80 / 100
END
ELSE 0
END) 一月份,
AVG(CASE
WHEN TO_CHAR(T.T_DATA, 'MM') = '02' AND T.NUM = 3 THEN
CASE
WHEN RN = 1 THEN
T.T_SCORE * 120 / 100
WHEN RN = 2 THEN
T.T_SCORE * 100 / 100
ELSE
T.T_SCORE * 80 / 100
END
WHEN TO_CHAR(T.T_DATA, 'MM') = '02' AND T.NUM = 4 THEN
CASE
WHEN RN = 1 THEN
T.T_SCORE * 120 / 100
WHEN RN = 2 THEN
T.T_SCORE * 110 / 100
WHEN RN = 3 THEN
T.T_SCORE * 90 / 100
ELSE
T.T_SCORE * 80 / 100
END
ELSE
END) 二月
FROM (SELECT A.T_DATA,
A.T_NAME,
A.T_SCORE,
ROW_NUMBER() OVER(PARTITION BY A.T_NAME ORDER BY A.T_DATA DESC) RN,
B.NUM
FROM temp_avg_score A
LEFT JOIN (SELECT T_NAME, COUNT(1) NUM
FROM temp_avg_score
GROUP BY T_NAME) B ON A.T_NAME = B.T_NAME) T
GROUP BY T.T_NAME;
【oracle怎么查平均分 oracle查询学生平均成绩及其名次】oracle怎么查平均分的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oracle查询学生平均成绩及其名次、oracle怎么查平均分的信息别忘了在本站进行查找喔 。

    推荐阅读