SQL—排序專用視窗函數

来源:https://www.cnblogs.com/dd0016/p/17979799
-Advertisement-
Play Games

下麵介紹三種用於進行排序的專用視窗函數: 1、RANK() 在計算排序時,若存在相同位次,會跳過之後的位次。 例如,有3條排在第1位時,排序為:1,1,1,4······ 2、DENSE_RANK() 這就是題目中所用到的函數,在計算排序時,若存在相同位次,不會跳過之後的位次。 例如,有3條排在第1 ...


下麵介紹三種用於進行排序的專用視窗函數:

1、RANK()

    在計算排序時,若存在相同位次,會跳過之後的位次。

    例如,有3條排在第1位時,排序為:1,1,1,4······

2、DENSE_RANK()

    這就是題目中所用到的函數,在計算排序時,若存在相同位次,不會跳過之後的位次。

    例如,有3條排在第1位時,排序為:1,1,1,2······

3、ROW_NUMBER()

    這個函數賦予唯一的連續位次。

例如,有3條排在第1位時,排序為:1,2,3,4······

視窗函數用法:

<視窗函數> OVER ( [PARTITION BY <列清單> ]

                                ORDER BY <排序用列清單> )

*其中[ ]中的內容可以忽略

例如:題目源自牛客網

 代碼:

select emp_no, salary,
       dense_rank() over (order by salary desc) as t_rank
from salaries
where to_date='9999-01-01'
order by t_rank asc,emp_no asc;

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 大家好,我是 frank ,「 Golang 語言開發棧」公眾號作者。 01 介紹 defer 的使用方式是在其後緊跟一個函數調用或方法調用,確保在其所在的函數體返回之前執行其調用的函數或方法。 在 Go 語言中,defer 一般用於資源釋放,或使用 defer 調用一個匿名函數,在匿名函數中使用 ...
  • 在 C++ 中,函數通常只能返回一個值。但是,可以通過引用參數、結構體、元組(C++11 及以後版本支持)等方式實現函數具有多個返回值的效果。以下是其中幾種方法的實例: 1. 通過引用參數: #include <iostream> // 通過引用參數實現多個返回值 void multipleRetu ...
  • 【版權聲明】未經博主同意,謝絕轉載!(請尊重原創,博主保留追究權) https://www.cnblogs.com/cnb-yuchen/p/17977495 出自【進步*於辰的博客】 之前使用SSM+JSP做網站開發,由於沒有註意setter、getter的隱式調用問題,出現了多次bug,對開發進 ...
  • C# 布爾值 在編程中,通常需要一個只能有兩個值之一的數據類型,比如: 是 / 否 開 / 關 真 / 假 為此,C# 有一個 bool 數據類型,可以取 true 或 false 的值。 布爾值 使用 bool 關鍵字聲明布爾類型,只能取 true 或 false 的值: 示例: bool isC ...
  • 概述:在C#中,字元串連接有兩種實現方法:使用`+`運算符和使用`StringBuilder`。前者在每次連接時都會創建新的字元串對象,效率較低。後者通過內部管理字元數組,避免了頻繁的記憶體分配和垃圾回收,因此性能更高。在處理大量字元串連接時,使用`StringBuilder`可以顯著提高性能。這兩種 ...
  • DevToys —— 號稱是開發人員的“瑞士軍刀”,一款適用於開發者的工具集合,包含各種實用的開發小工具。JSON格式化、文本對比、正則表達式...無需網路,離線即可使用! ...
  • Linux 是一個嚴謹的操作系統,每個目錄存放什麼文件是有明確的要求和規範的。我們應該去瞭解這些目錄的作用,然後按照目錄要求去操作。 ...
  • 一、海豚調度介紹 Apache DolphinScheduler 是一個分散式易擴展的可視化DAG工作流任務調度開源系統。適用於企業級場景,提供了一個可視化操作任務、工作流和全生命周期數據處理過程的解決方案。 Apache DolphinScheduler 旨在解決複雜的大數據任務依賴關係,併為應用 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 插件化的需求主要源於對軟體架構靈活性的追求,特別是在開發大型、複雜或需要不斷更新的軟體系統時,插件化可以提高軟體系統的可擴展性、可定製性、隔離性、安全性、可維護性、模塊化、易於升級和更新以及支持第三方開發等方面的能力,從而滿足不斷變化的業務需求和技術挑戰。 一、插件化探索 在WPF中我們想要開 ...
  • 歡迎ReaLTaiizor是一個用戶友好的、以設計為中心的.NET WinForms項目控制項庫,包含廣泛的組件。您可以使用不同的主題選項對項目進行個性化設置,並自定義用戶控制項,以使您的應用程式更加專業。 項目地址:https://github.com/Taiizor/ReaLTaiizor 步驟1: ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • Channel 是乾什麼的 The System.Threading.Channels namespace provides a set of synchronization data structures for passing data between producers and consume ...
  • efcore如何優雅的實現按年分庫按月分表 介紹 本文ShardinfCore版本 本期主角: ShardingCore 一款ef-core下高性能、輕量級針對分表分庫讀寫分離的解決方案,具有零依賴、零學習成本、零業務代碼入侵適配 距離上次發文.net相關的已經有很久了,期間一直在從事java相關的 ...
  • 前言 Spacesniffer 是一個免費的文件掃描工具,通過使用樹狀圖可視化佈局,可以立即瞭解大文件夾的位置,幫助用戶處理找到這些文件夾 當前系統C盤空間 清理後系統C盤空間 下載 Spacesniffer 下載地址:https://spacesniffer.en.softonic.com/dow ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • 一、ReZero簡介 ReZero是一款.NET中間件 : 全網唯一開源界面操作就能生成API , 可以集成到任何.NET6+ API項目,無破壞性,也可讓非.NET用戶使用exe文件 免費開源:MIT最寬鬆協議 , 一直從事開源事業十年,一直堅持開源 1.1 純ReZero開發 適合.Net Co ...
  • 一:背景 1. 講故事 停了一個月沒有更新文章了,主要是忙於寫 C#內功修煉系列的PPT,現在基本上接近尾聲,可以回頭繼續更新這段時間分析dump的一些事故報告,有朋友微信上找到我,說他們的系統出現了大量的http超時,程式不響應處理了,讓我幫忙看下怎麼回事,dump也抓到了。 二:WinDbg分析 ...
  • 開始做項目管理了(本人3年java,來到這邊之後真沒想到...),天天開會溝通整理需求,他們講話的時候忙裡偷閑整理一下常用的方法,其實語言還是有共通性的,基本上看到方法名就大概能猜出來用法。出去打水的時候看到外面太陽好好,真想在外面坐著曬太陽,回來的時候好兄弟三年前送給我的鍵盤D鍵不靈了,在打"等待 ...