oracle中按A列分組,B列排序,取B中第一條資料的查詢__oracle

來源:互聯網
上載者:User

在寫SQL的時候為了統計或者給資料排序的時候,我們會遇到需要A列資料一致,B列資料排序取B列資料最大的一條這種情況。那這種情況我們該如何去寫SQL呢。

我們可以按照我們的思路去一步步分解。我們想要的資料就是A列分組和B列排序,第一反應是 ROW_NUMBER() OVER(PARTITION BY)函數。知道我們需要使用什麼函數之後我們就很好寫了。

話不多說,直接舉個栗子。現有一張表T,T中有欄位 a,b,c,d我們需要c欄位相同,d欄位最大的資料。SQL如下:

SELECT C,D FROM(       SELECT C,D ,ROW_NUMBER()OVER(PARTITION BY C ORDER BY D DESC) AS RFROM(       SELECT T.C, T.D FROM T T )   ) WHERE R=1
我這裡選擇的是最大的資料,我們可以根據我們的需求去做相應改變。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.