select *,max(create_time) from a
where create_time<="2017-03-29 19:30:36"
group by user_id
這句可以理解為將結果集根據user_id分組,每組取time最大一條記錄。這樣就很好的實現了批量查詢最近記錄,並且僅僅需要遍歷一次表,即使在數據量巨大的情況下也可以在很短的時間查出結果。
(1)sql取最新的一條數據擴展閱讀:
SQL數據查詢語句
1、語句語法簡單歸納為:
SELECTselect_list[INTOnew_table_name] [FROMtable_source]
[WHEREsearch_condition] [GROUP BYgroup_by_expression]
[HAVINGsearch_condition] [ORDER BYorder_expression[ASC | DESC]]
2、WITH子句用於指定臨時命名的公用表達式,在單條語句(SELECT、INSERT、UPDATE、DELETE)的語句執行范圍內定義。
3、LIKE關鍵字
用於模糊查詢,通配符有%、_、[ ]、[^]
%:後面可以跟零個或多個字元
_:匹配任意單個字元
[ ]:查詢一定范圍內的單個字元,包括兩端數據
[^]:表示不在一定范圍內的單個字元,包括兩端數據
㈡ sql如何取得外連接表中最新一條數據
這樣?
selectA.userid,max(B.userid)
formA,B
whereA.id=B.id(+)
㈢ MSSQL中如何獲取最新插入的一條數據
主鍵如果是GUID,那肯定會帶上聚集索引,聚集索引會從物理上改變數據的位置,而且GUID是無序的,對GUID排序也是得不到准確的結果,還有一種方法,通過日誌去查找,但是這個復雜度太高,而且日誌記錄的是整個db的,查找比較麻煩,
結論:如果沒有用自增長ID與createTime 欄位,基本沒法取最後插入的記錄。
㈣ sql中,取時間最近的一條記錄
selecttest.sub_dh,test.date,test.Gname
fromtest,(SELECTSub_dhasdh,MAX(Date)asdateFROMdbo.testGROUPBYSUB_DH)a
wheretest.Sub_dh=a.dh
andtest.date=a.date
看你寫的SQL,GROUPBY的用法還是沒有太理解
㈤ sql 取最後一條記錄
SQL Server 查詢最後一條記錄有兩種方法,一種是使用TOP命令,一種是使用LIMIT命令,具體方法如下:
1、使用TOP
SELECT TOP 1 * FROM user;
SELECT TOP 1 * FROM user order by id desc;
2、 使用LIMIT
SELECT * FROM user LIMIT 1;
SELECT * FROM user ORDER BY id ASC LIMIT 1;
SELECT * FROM user ORDER BY id DESC LIMIT 1;
(5)sql取最新的一條數據擴展閱讀:
SQL函數
1、算數函數
ABS (數值),絕對值
MOD (被除數, 除數),求余
ROUND (對象數值, 保留小數的位數),四捨五入
2、字元串函數
CONCAT (字元串1, 字元串2, 字元串3),拼接
LENGTH (字元串),字元串長度
LOWER (字元串),小寫
UPPER (字元串) ,大寫
REPLACE (對象字元串,替換前的字元串,替換後的字元串),替換
SUBSTRING(對象字元串 FROM 截取的起始位置 FOR 截取的字元數),截取
㈥ sql如何取當前時間最近的一條記錄
select*from
(selecttop1*from表名orderbydate1)table1orderbydate1desc
㈦ SQL在分組查詢時,怎麼獲取最新一條記錄
sql如何分組選擇顯示最新的一條數據
首先,該問題對應的SQL如下
select 采購類別,客戶,訂貨總額
from (select 采購類別,客戶,訂貨總額,
row_number() over(partition by 采購類別 order by 訂貨總額 desc) rn
from table_name) awhere rn<=2
;
其次,常用資料庫比如Oracle和Sqlserver都有特定函數完成分組排序的功能,如果需要顯示並列的情況可以用下面另外的2個.
分別有3個類似函數:
row_number() over
這個函數不需要考慮是否並列,哪怕根據條件查詢出來的數值相同也會進行連續排名。也是最常用的函數,排序結果類似於1,2,3,4,5
rank() over
查出指定條件後進行一個排名,但是有一個特點。假如是對學生排名,那麼實用這個函數,成績相同的兩名是並列。排序結果類似於1,2,2,4,5
dense_rank() over
比較特殊,排序結果類似於1,2,2,3,4
㈧ SQL 取最近一條數據,求SQL語句
select top 1 * from TAB where 名字='測試' order by 時間 desc
思路: 取到名字為測試的數據,假如名字為測試的數據有10條,那麼按照時間倒序,倒序就是說離現在最近的時間,然後top 1,取第一條。
㈨ sql語句怎樣取時間最新的一條數據
order by time desc