Oracle:查詢各組最新的一條記錄
oracle中怎麼查詢各組中最新的一條記錄呢?比如說現在有一個表中幾條資料如下:
有兩種寫法:
寫法一:over partition by
分析函式
SELECT * FROM (select ID_,COMPANY_NAME,USAGE_RATE,DETECTION_RATE,ACCEPTABILITY_RATE,CREATE_TIME,MAX(CREATE_TIME) over(partition by COMPANY_NAME) as "atime" from SPEC_RATE_ORIGIN) x where CREATE_TIME = "atime";
寫法二:inner join
SELECT A.* FROM SPEC_RATE_ORIGIN A INNER JOIN (SELECT COMPANY_NAME,MAX(CREATE_TIME) AS "atime"
FROM SPEC_RATE_ORIGIN group by COMPANY_NAME) B ON A.COMPANY_NAME = B.COMPANY_NAME AND A.CREATE_TIME = B."atime";
查詢結果為:
相關推薦
Oracle:查詢各組最新的一條記錄
oracle中怎麼查詢各組中最新的一條記錄呢?比如說現在有一個表中幾條資料如下: 有兩種寫法: 寫法一:over partition by 分析函式 SELECT * FROM (select ID_,COMPANY_NAME,USAGE_RATE,DETECTION_RAT
MYSQL GROUP BY查詢,結果只取最新一條記錄
mysql 用 group by 查詢時,會自動保留 對應組 ‘最先搜尋出來的資料’,但這時資料可能不是最新的 如何設定保留 對應組‘最後搜尋出來的資料’ 呢?詳見程式碼 select * f
MSSQL分組取後每一組的最新一條記錄
top 分享 mssql 方法 esc box nan 技術分享 -c 數據庫中二張表,用戶表和獎金記錄表,獎金記錄表中一個用戶有多條信息,有一個生效時間,現在要查詢: 獎金生效時間在三天前,每個用戶取最新一條獎金記錄,且用戶末鎖定 以前用的方法是直接寫在C#代碼中的:
取最新一條記錄
sql-- 方法1SELECT * FROM TB_GATEBUS G WHERE (G.AUTOFAREGATENO, G.DEFINEDATE) IN (SELECT GB.AUTOFAREGATENO, MAX(GB.DEFINEDATE) FROM TB_GATEBUS
mysql和oracle查詢出的一條結果中的多個欄位拼接
1,mysql concat('a','b','c')和concat_ws('a','b','c')的區別:前者如果有某個值為空,結果為空;後者如果有某個值為空,可以忽略這個控制 SELECT concat_ws('',FORE_TWO,THIRD_POSITION,FOURTH_POSIT
HQL取滿足條件最新一條記錄(max()函式的使用)
專案中要查詢滿足條件的最新一條記錄,用的是Hibernate框架,因此要使用HQL語句: from DeviceUseRecord where DeviceUseRecord.id =(select max(DeviceUseRecord.id) from DeviceUs
group by查詢每組時間最新的一條記錄
詳細 describe 技術 .html location 取數 時間 index net 錯誤寫法,having time = max(time)在分組之後執行,查詢出來只有一條滿足條件的數據。having過濾的是組,在order by之後執行 se
oracle裡設定只查詢一條記錄
某天看到《MySQL效能優化的最佳20+條經驗》這裡的介紹裡就有一條說的是當查詢結果只有一條的時候,mysql SQL最後加上“limit 1”關鍵字。 然後,現在改成Oracle的話,那就在where條件里加 "rownum=1"就好了。
SQL 語句 一對多關係,根據一查詢多裡面對應一的最新的一條記錄
上面有點繞,其實就是需要主從id匹配,然後取得從表和主表匹配的每一組資料中最新的一條 思路 首先需要連表查詢,可以用in , exists , 連線查詢 我用的是連線查詢 其次需要把字表根據主表id分組 然後查詢出聯合資料。 上面是正常流程,但是就是在這裡出現了問題,gro
Oracle查詢重複資料並刪除,只保留一條記錄
前言專案中,在“資源目錄-線上編目”中,資源項子表存在多條重發資料,需要進行資料清理,刪除重發的資料,最終只保留一條相同的資料。操作的表名:R_RESOURCE_DETAILS操作步驟一、重複記錄根據單
oracle獲取最新的一條記錄
SELECT lybh,cfrq FROM ( SELECT lybh,cfrq,row_number() over(partition BY lybh ORDER BY cfrq
sqlserver 查詢資料表中每個類別最新的一條記錄
本文此處所規定的類別為省份ID,原始表如下圖所示: 所使用SQL語句為: select a.* from tbl_MaterialPice a,(select province_ID,max(
oracle 查詢當前記錄的上一條記錄或下一條記錄
上一條 select * from cms_article a where id = (select c.p from (select t.id, lag(t.id, 1, 0) over(order by t.sort) as p
mysql 查詢不同使用者 最新的一條記錄
MYSQL查詢不同使用者 最新的一條記錄 方法1:查詢出結果後將時間排序後取第一條(只能取到一條,並且不能查詢不同客戶的記錄) SELECT CUSTOMER_ID,CONTENT,MODIFY_TIME FROM `service_records` ORDER BY MODIFY_TIME DE
表A中一條記錄的兩個字段都對應於表B的同一個字段 如何查詢?SQL, thinkphp[5]
username 如何 sel 表名 admin clas team ech field 表 A=approval_order, B=admin, 表A中technician_username, salesman_username 都是id號,中文名保存在admin表的
sql 查資料庫中時間最新的一條記錄
下策——查詢出結果後將時間排序後取第一條 select * from a where create_time<="2017-03-29 19:30:36" order by create_time desc limit 1 這樣做雖然可以取出當前時間最近的一條記錄,但是一次查詢需要
關於查詢表中時間最新的一條記錄
最近遇到一個sql,要求表中時間最新的一條記錄 假設表名為 test ,時間欄位為sj,姓名為xm,可以用以下語句: select * from test a where a.sj=(select max(b.sj) from test b where b.xm=a.xm) 之前一直不理解這個
用遊標,和WHILE可以遍歷您的查詢中的每一條記錄並將要求的欄位傳給變數進行相應的處理
用遊標,和WHILE可以遍歷您的查詢中的每一條記錄並將要求的欄位傳給變數進行相應的處理 ================== DECLARE @A1 VARCHAR(10), @A2 VARCHAR(10), @A3 INT DECLARE CURSOR YOUCUR
在mysql 中查詢時間最大的一條記錄
首先如下這樣寫是錯的: SELECT name,MAX(last_updated) FROM digital_asset GROUP BY name; 這樣子查到的資料last_updated確實是最大的,但是和name沒有關係; 用這個方法可以實現: SELECT A.* F
oracle過濾某個欄位重複記錄,只獲取一條記錄
oracle過濾某個欄位重複記錄,只獲取一條記錄 一,首先想到: 1,關鍵字distinct 2,group by 3,MAX,MIN這樣的函式被稱為聚集函式,和GROUP搭配起來用 但均無法實現,執行結果如下 舉例: 表名:OffsiteOutreachTeam_Lis