oracle – 在每个分区的列中查找最大值
发布时间:2021-01-26 05:01:56 所属栏目:站长百科 来源:网络整理
导读:我有表布局,如: CREATE TABLE new_test( col1 NUMBER(2) NOT NULL,col2 VARCHAR2(50) NOT NULL,col3 VARCHAR2(50) NOT NULL,col4 VARCHAR2(50) NOT NULL); 它稀有据: col1 col2 col3 col40 A B X1 A B Y2 A B Z1 C D L3 C D M 我必要找到col4的值,它对col2
我有表布局,如: CREATE TABLE new_test ( col1 NUMBER(2) NOT NULL,col2 VARCHAR2(50) NOT NULL,col3 VARCHAR2(50) NOT NULL,col4 VARCHAR2(50) NOT NULL ); 它稀有据: col1 col2 col3 col4 0 A B X 1 A B Y 2 A B Z 1 C D L 3 C D M 我必要找到col4的值,它对col2和col3的组合具有最大值.譬喻我的功效应该是: col4 Z M 我实行行使oracle说明函数: SELECT col4,MAX(col1) OVER (PARTITION BY col2,col3) FROM ( SELECT col2,col3,col4,col1 FROM new_test); 但它没有按预期事变.你能帮我办理这个题目吗? 更新: SELECT a.col4 FROM new_test a,(SELECT col2,col3) AS col1 FROM new_test ) b WHERE a.col2 = b.col2 AND a.col3 = b.col3 AND a.col4 = b.col4 AND a.col1 = b.col1; 尚有比这更好的要领吗? 办理要领假如您祈望获得功效:col4 Z M 你应该写: SELECT MAX(col4) AS col4 FROM new_test GROUP BY col2,col3 这将返回每列col2 col3在col4列中找到的最大值 假如你必要: COL2 COL3 COL4 A B Z C D M 写: SELECT col2,MAX(col4) AS col4 FROM new_test GROUP BY col2,col3 最后,假如您必要: COL1 COL2 COL3 COL4 2 A B Z 3 C D M 有许多变革.像这个: SELECT col1,col2,col4 FROM new_test NATURAL JOIN (SELECT col2,MAX(col4) AS col4 FROM new_test GROUP BY col2,col3) (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |