sql 讀取聊天記錄,要分組最新

2022-12-26 10:22

3個(gè)回答
是不是 和同一個(gè)人 的聊天記錄中, 時(shí)間有一樣的?

另外,能講解一下 fid, toid 的含義嗎? 還有,你的用戶1 怎么表示的呢?
1、為什么有 3 1 12:34 在不在回個(gè)話啊

而沒有 2 1 12:31 隨便

2、如果是有重復(fù)的,那應(yīng)該是在相同時(shí)間內(nèi)有兩條FID相同的記錄,這時(shí)候你的規(guī)則是取哪一條,根據(jù)什么區(qū)分
with?temp?as
(
select?fid,toid?,MAX(times)?as?maxtime?from?TestA?group?by?fid,toid
),
?temp1?as
(
select?a.fid,a.toid,a.maxtime,
case?when?a.fid<=a.toid?
?then?CAST(a.fid?AS?varchar(10))+CAST(a.toid?AS?varchar(10))
else
CAST(a.toid?AS?varchar(10))+CAST(a.fid?AS?varchar(10))
end?as?tid
?from?temp?a?,?temp?b?where?a.fid?=?b.toid?and?b.fid?=?a.toid
),
temp2?as
(
select?*?from?temp?c?where?not?exists
(
select?1?from?temp1?d
where?c.fid=d.fid?and?c.toid=d.toid?and?c.maxtime=d.maxtime
)
union
select?c.fid,c.toid,c.maxtime?from?temp1?c?inner?join??
(--處理重復(fù)數(shù)據(jù)
select?max(maxtime)?maxtime,tid?from?temp1?a?group?by?a.tid
)d?on?c.maxtime=d.maxtime?and?c.tid=?d.tid
)


select?a.fid,a.toid,a.times,a.des?from?TestA?a?inner?join?temp2?b?on
a.fid=b.fid?and?a.times=b.maxtime?and?a.toid=b.toid

?使用的時(shí)候注意將TestA表換成你自己的表名即可

相關(guān)問答
sql語句 聊天記錄,取最新一條
2個(gè)回答2022-12-24 00:18
select?*?from?tabname?t1, (select?fid,max(time)?time from?tabname group?by?fid)?max1 where?t1.fid?=?...
全文
sql語句 聊天記錄,取用戶最新一條
2個(gè)回答2023-03-11 13:05
select * from 表A W where Sendtime=(select MAX(Sendtime) from 表A where sendid...
全文
sql 取每個(gè)用戶的最新記錄
1個(gè)回答2022-12-22 01:05
如果imagedate是時(shí)間的話. select top 1 * from 表 where userid=用戶id order by imagedate desc;
sql中取時(shí)間最早對(duì)應(yīng)的記錄
2個(gè)回答2023-02-10 05:18
假如你的表, accno 只有一個(gè) 12的。 沒有其他的 accno。 或者你無視 accno, 只找時(shí)間最早的那條。 那么: SELECT TOP 1 * FROM 表名 ORDER BY opd...
全文
SQL語句刪除一個(gè)表中的多條記錄
1個(gè)回答2022-05-29 18:13
到底是刪行還是列
SQL獲取一周內(nèi)或者一個(gè)月的數(shù)據(jù)的sql語句怎么寫?
5個(gè)回答2022-08-10 12:46
用sql里面的datediff(datepart,startdate,endate) 時(shí)間差,及間隔數(shù)
到夢(mèng)空間組織者怎么取消錄取
1個(gè)回答2022-11-10 21:35
將錄取人員從名單里移出來就可以了。 在參加評(píng)審制活動(dòng)時(shí),在活動(dòng)錄取結(jié)束前,活動(dòng)組織者可以將錄取人員從錄取名單中移出,這樣就取消錄取了。
寫一個(gè)SQL能夠取到一年的52周的所有記錄(即返回52條記錄)
1個(gè)回答2022-04-04 18:03
select top 52 row_number(), OVER (ORDER BY id) from sys.sysobjects
寫一個(gè)SQL,能夠取到2007年的365天的所有記錄(即返回365條記錄)
2個(gè)回答2022-08-09 01:35
不知道你啥數(shù)據(jù)庫, 如果是 SQL Server 的, 那么很省事 SELECT DATEADD(dd, number , CONVERT(DATETIME, '2007-01...
全文
使用SQL文件組有哪些優(yōu)點(diǎn)
1個(gè)回答2023-02-24 06:55
文件組可以把數(shù)據(jù)庫拆分成多個(gè)文件存儲(chǔ),然后文件分別放在不同的盤里面,這樣讀取數(shù)據(jù)的時(shí)候速度快,可并行讀取 另外,文件組可以使文件的組織更加有序,比如,你可以把碼表一類的數(shù)據(jù)放在一個(gè)文件組中,業(yè)務(wù)數(shù)據(jù)文...
全文