十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章主要介紹數(shù)據(jù)庫中如何改寫max/min函數(shù),文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

1.OLD:
SELECT a.deptno, a.min_no, mi.ename AS min_n, ma.empno AS max_n FROM ( SELECT deptno, MIN (empno) AS min_no, MAX (empno) AS max_no FROM emp GROUP BY deptno) a INNER JOIN emp mi ON (mi.deptno = a.deptno AND mi.empno = a.min_no) INNER JOIN emp ma ON (ma.deptno = a.deptno AND ma.empno = a.max_no);
2.優(yōu)化方向:
sql需求顯示每個部門中大員工號和姓名,最小員工號和姓名
group by 不能同時顯示聚集結(jié)果和源數(shù)據(jù),因此需要通過自連接來實現(xiàn)。
使用分析函數(shù),將元數(shù)據(jù)和聚集數(shù)據(jù)在同一行顯示,去除自連接。
select deptno, min(empno) min_no, min(ename) keep(dense_rank first order by empno) min_n, max(empno) max_no, min(ename) keep(dense_rank last order by empno) max_n from emp group by deptno;
以上是“數(shù)據(jù)庫中如何改寫max/min函數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!