自關聯和動態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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- UnityInspector給元件自動關聯引用Unity元件
- ERP的Account group和CRM partner group的對映關係
- Laravel 通過子查詢建立動態關聯Laravel
- Laravel 模型關聯的『動態屬性』,Eloquent: 關聯以後可以獲取模型的集合Laravel模型
- 關於心態建設,程式設計和自學程式設計
- 自動駕駛終於出了第一個生態聯盟自動駕駛
- 關於自動化平臺的動態選單設計(二)
- python+pytest介面自動化(13)-token關聯登入Python
- 下拉表關聯非同步載入- 引數動態過濾非同步
- c語言中自動儲存期和靜態儲存期C語言
- 釘釘機器人自動關聯 GitHub 傳送 approval prs機器人GithubAPP
- win10系統怎麼設定自動關機和取消自動關機的bat命令Win10BAT
- 資料庫的sort group by和hash group by資料庫
- BIRT 異構跨庫的動態關聯查詢怎麼做
- 聯想win10如何取消自動更新 關閉win10自動更新的解決方法Win10
- 關於短視訊平臺原始碼動態廣場自動播放gif動圖原始碼
- 分析函式改寫自關聯函式
- oracle partition by group by,詳解partition by和group by對比Oracle
- xshell和xftp怎麼關聯,xshell和xftp關聯僅需5步FTP
- win10怎麼取消自動關機_win10電腦如何設定和取消自動關機Win10
- Ros 自動避障和尋路相關資料ROS
- 靜態路由和動態路由路由
- 靜態代理和動態代理
- 關於vue動態元件Vue元件
- 有關動態規劃動態規劃
- 運維開發裡的資料動態獲取和自動補錄運維
- 一對一聊天原始碼,動態搜尋,自動填充可能相關的內容原始碼
- 區分關聯子查詢和非關聯子查詢
- Springboot專案啟動後自動建立多表關聯的資料庫與表的方案Spring Boot資料庫
- Loadrunner11 手動關聯
- ios靜態庫和動態庫iOS
- React Router、And、Redux動態選單和動態路由ReactRedux路由
- Python中關於++和—(自增和自減)的理解Python
- EF Core3.1 CodeFirst動態自動新增表和欄位的描述資訊
- Java代理(jdk靜態代理、動態代理和cglib動態代理)JavaJDKCGLib
- 關於動態許可權
- 關於動態規劃法動態規劃
- 關於MNN工程框架編譯出來的靜態庫和動態庫的使用框架編譯
- 如何關閉Win10自動更新 win10永久關閉自動更新Win10