SQL搜索以获取每个具有相同用户ID的唯一单个/组条目中的最后一个值?条目可以出现在数据集中的不同位置
这是我的第一篇文章 我有一个表,其中有3个字段Id、UserID、Amount和一些数据。SQL搜索以获取每个具有相同用户ID的唯一单个/组条目中的最后一个值?条目可以出现在数据集中的不同位置,sql,sqlite,Sql,Sqlite,这是我的第一篇文章 我有一个表,其中有3个字段Id、UserID、Amount和一些数据。 我的问题是,我需要为每个外观获取UserID和它的最后数量。它可以是一个表中的多个用户ID,数量随着一个而增加,但有时是两个。我正在使用Sqlite。这将为您提供正确答案。尽管如此,根据我在你问题下方的评论,这并不是你所期望的答案 select a.ID, a.UserID, b.Amount from ( select UserID
我的问题是,我需要为每个外观获取UserID和它的最后数量。它可以是一个表中的多个用户ID,数量随着一个而增加,但有时是两个。我正在使用Sqlite。这将为您提供正确答案。尽管如此,根据我在你问题下方的评论,这并不是你所期望的答案
select
a.ID,
a.UserID,
b.Amount
from
(
select
UserID,
max(ID) as ID
from
YOUR_TABLE
group by
UserID
) a
inner join YOUR_TABLE b on a.ID = b.ID and a.UserID = b.UserID
试着用铅
我们可以通过创建组id changeinorder[col]来实现
通过检测当前记录到以前的记录是否有变化,以用户ID的顺序为基础
您确定第二张图中的预期答案正确吗?您说过要检索每个组合的最新记录,但您预期的答案没有反映这一点,并且其中有重复的记录。您使用的是哪个数据库?Jose我试图更改问题以澄清。Vignesh Kumar A提供的解决方案确实回答了我的问题。
SELECT ID, UserID, AMOUNT FROM
(
SELECT ID, UserID, Amount,
CASE WHEN LEAD(UserID) OVER(ORDER BY ID) IS NULL THEN 0 ELSE LEAD(UserID) OVER(ORDER BY ID) END RN
FROM TABLE1
) X WHERE UserID <> RN OR RN = 0
SELECT *,0 as changeinorder,LAG(Userid)
OVER (ORDER BY ID) AS 'Previous Record' INTO #TestB FROM #test
DECLARE @a INT
SELECT @a = 0
UPDATE #testB SET Changeinorder =@a, @a=
CASE WHEN Userid=[Previous Record]
THEN @a ELSE @a+1 END
SELECT MAX(ID),UseriD,MAX(Amount) FROM #testB GROUP BY UseriD,changeinorder