近日,工作中突遇一需求:將一數據表分組,而后取出每組內按一定規則排列的前N條數據。乍想來,這本是尋常查詢,無甚難處。可提筆寫來,終究是困住了筆者好一會兒。冥思苦想,遍查網絡,不曾想這竟然是SQL界的一個經典話題。今日將我得來的若干方法列出,拋磚引玉,以期與眾位探討。 正文之前,對示例表 ...
經常遇到這樣的問題,相同ID的數據有多筆,但是只能任取其中一筆,下面是我的一個思考過程和學習過程。雖然比較基礎和簡單,但是總會有人不知道,也可以學習一下。 :建表和初始化數據 :首先想到的肯定是group by ,但是group by 后面的欄位必須是聚合函數,如果用max或min,每個欄位取都不一定是同一筆數據的信息,這樣就有錯誤 :本着先思考再找答案的思想,我想了一下,想到了一個很笨的辦法, ...
2014-04-24 17:38 0 3990 推薦指數:
近日,工作中突遇一需求:將一數據表分組,而后取出每組內按一定規則排列的前N條數據。乍想來,這本是尋常查詢,無甚難處。可提筆寫來,終究是困住了筆者好一會兒。冥思苦想,遍查網絡,不曾想這竟然是SQL界的一個經典話題。今日將我得來的若干方法列出,拋磚引玉,以期與眾位探討。 正文之前,對示例表 ...
SQL Server 分組后取Top N(轉) 近日,工作中突遇一需求:將一數據表分組,而后取出每組內按一定規則排列的前N條數據。乍想來,這本是尋常查詢,無甚難處。可提筆寫來,終究是困住了筆者好一會兒。冥思苦想,遍查網絡,不曾想這竟然是SQL界的一個經典話題。今日將我得來的若干 ...
轉自:http://blog.csdn.net/wguangliang/article/details/50167283 要求:按照課程分組,查找每個課程最高的兩個成績。 數據文件如下: 第一列no為學號,第二列course為課程,第三列score為分數 [plain] view ...
環境: sql server 2012 語法 ...
sql server 分組,取每組的前幾行數據 sql中group by后,獲取每組中的前N行數據,目前我知道的有2種方法 比如有個成績表: 里面有字段學生ID,科目,成績。我現在想取每個科目的頭三名。 1. 子查詢 select * from score s where ...
我們在生產實踐中經常會有這樣的需求:分組編號。 如下有一個城市區域表region: 我們需要對上表region按city分組,對region進行排序,得到如下結果: 具體sql如下: 此方法主要是運用row_number()開窗函數通過對city進行分組后,再 ...
sqlserver2005前: --分組取最大最小常用sql--測試環境if OBJECT_ID('tb') is not null drop table tb;gocreate table tb( col1 int, col2 int, Fcount int)insert ...
一、分組統計 數據 name dtdate result aa 2017-01-04 1 aa 2017-01-04 1 aa 2017-01-05 1 aa 2017-01-05 0 bb 2017-01-04 1 bb 2017-01-04 1 cc 2017-01-04 0 dd ...