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