我有一个有超过50k个条目和几个用户的表:
transactions Table:
ID
USER
VALUE
TIMESTAMP
users Table:
USER
TYPE
REGION我想得到每个用户的最新事务。到目前为止,我使用了以下BY语句组,但是它很慢(大约需要5-10秒):
select ID , max(TIMESTAMP) as TIMESTAMP from transactions group by USER;是否有更快的语句来检索最近的条目?
发布于 2014-04-02 10:54:30
首先,根据我的理解,ID列应该在transaction表中保留唯一的值,因此group by应该根据您的需求在USER字段中。
此外,您可以尝试下面的查询。我不确定,但您可以将其时间与您的查询进行比较,并相应地使用。
SELECT
USER , TIMESTAMP
FROM
(SELECT USER,TIMESTAMP FROM transactions ORDER BY ID DESC) a
GROUP BY USER;假设在用户列上有一个索引,因为这在两个表之间是常见的。
发布于 2014-04-02 11:26:37
尝尝这个,
select u.*,tr.* from users as u
outer apply
(
select top 1 * from transactions as t
where t.USER= u.USER
order by t.ID desc
)as trhttps://stackoverflow.com/questions/22808610
复制相似问题