自關聯和動態group by
網上看到一個開發面試題,我也拿來研究了一下。
表nba記錄了nba(team VARCHAR2(10),y NUMBER(4))奪冠球隊的名稱及年份
TEAM Y -------------------- ------------------------------ 活塞 1990 公牛 1991 公牛 1992 公牛 1993 火箭 1994 火箭 1995 公牛 1996 公牛 1997 公牛 1998請寫出一條SQL語句,查詢出在此期間連續獲得冠軍的有哪些,其連續的年份的起止時間是多少,結果如下:TEAM B E ------------------------------ -------------------------------- 公牛 1991 1993 火箭 1994 1995 公牛 1996 1998寫法如下:select t.team, min(t.ay) as bg , max(t.ay)+1 as ed from (select b.team, a.y as ay from nba a, nba b where a.team = b.team and a.y = b.y - 1 order by a.y) t group by t.team,(t.ay-rownum)分析:1. 在t表裡,把有連續奪冠的球隊查詢出來,包括球隊,和年份,能取到開始,但是結束需要加1。2.分組,排好序後,根據 (年份-rownum),因為是按年排序,又減去一個rownum,所以team一樣的,年份減去rownum後,年份-rownum也會一樣。看樣子,以後想分組不一樣值的欄位,減去某個變數,類似rownum,實現減去後的值一樣,達到分組效果。
這個sql還是很巧妙的,擴充我的思維了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25027760/viewspace-1139759/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PowerDesigner中name和code取消自動關聯
- UnityInspector給元件自動關聯引用Unity元件
- ios Coredata 關聯 UITableView 資料自動更新iOSUIView
- 自動儲存、靜態儲存和動態儲存
- C++中的靜態聯編和動態聯編介紹(轉)C++
- Laravel 通過子查詢建立動態關聯Laravel
- 自動駕駛終於出了第一個生態聯盟自動駕駛
- 關於靜態引數和動態引數
- oracle自動啟動和關閉的方法Oracle
- ERP的Account group和CRM partner group的對映關係
- Laravel 模型關聯的『動態屬性』,Eloquent: 關聯以後可以獲取模型的集合Laravel模型
- AttachXMLForSelect:XML自動關聯多級SELECT選單程式碼和例子 (轉)XML
- 關於自動化平臺的動態選單設計
- Oracle自動啟動和關閉的方法 (轉)Oracle
- 關於自動化平臺的動態選單設計(二)
- 下拉表關聯非同步載入- 引數動態過濾非同步
- 如何給Infopath表單儲存時自動命名和自動關閉
- 如何自動喚醒和關閉 LinuxLinux
- BIRT 異構跨庫的動態關聯查詢怎麼做
- 分析函式改寫自關聯函式
- 釘釘機器人自動關聯 GitHub 傳送 approval prs機器人GithubAPP
- python+pytest介面自動化(13)-token關聯登入Python
- win10系統怎麼設定自動關機和取消自動關機的bat命令Win10BAT
- 關注innodb動態
- 關於短視訊平臺原始碼動態廣場自動播放gif動圖原始碼
- Linux 下 Oracle隨系統自動啟動和關閉LinuxOracle
- ORACLE AS 自動關閉Oracle
- Henry的VB.NET之旅(十四)—動態關聯事件與處理程式事件
- linux下開機使用dbstart和dbshut自動啟動和關閉db!Linux
- LINUX下開機使用dbstart和dbshut自動啟動和關閉dbLinux
- 資料庫的sort group by和hash group by資料庫
- 11g 自動記憶體管理先關動態效能檢視三個記憶體
- win10怎麼取消自動關機_win10電腦如何設定和取消自動關機Win10
- Ros 自動避障和尋路相關資料ROS
- 執行迴圈和自動釋放池關係
- 靜態代理和動態代理
- 靜態路由和動態路由路由
- 有關動態規劃動態規劃