为了账号安全,请及时绑定邮箱和手机立即绑定

SQL查询获取最后一笔时间数据问题

SQL查询获取最后一笔时间数据问题

慕容708150 2018-12-06 17:18:30
数据库表如下:     列A    列B    列C     AA     20    2011-10-17 00:00:00     BB     20    2011-10-17 00:00:00     AA     20    2011-10-17 10:00:00 我想得到的结果是以‘列A’为分组条件、查询出‘列C’时间最大的数据、理想得到的结果如下:     列A    列B    列C     AA     20    2011-10-17 10:00:00     BB     20    2011-10-17 00:00:00  请大侠帮忙 啊
查看完整描述

12 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

SELECT     t1.A, t1.B, t1.C
FROM 表名 AS t1 RIGHT OUTER JOIN
(SELECT A, MAX(C) AS C
FROM 表名
GROUP BY A) AS t2 ON t1.A = t2.A AND t1.C = t2.C
查看完整回答
反对 回复 2019-01-07
?
神不在的星期二

TA贡献1963条经验 获得超6个赞


select
列A,max(列C)as 列C into #temp from Table group by 列A;

select b.* from #temp a,Table b
where a.列A=b.列A and a.列C=b.列C
查看完整回答
反对 回复 2019-01-07
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

我要查询的不是MAX这个时间 、、是给定一个时间、小于等于我这个时间的就行了、

查看完整回答
反对 回复 2019-01-07
?
噜噜哒

TA贡献1784条经验 获得超7个赞

@youwj: "查询出‘列C’时间最大的数据"是我们理解有问题?那你现在要查询的是什么?没看懂你补充的。

查看完整回答
反对 回复 2019-01-07
?
九州编程

TA贡献1785条经验 获得超4个赞

@webaspx: 是查询列C的最大的那笔数据、但是我要加个Where条件、列C必须要小于我指定的一个时间

查看完整回答
反对 回复 2019-01-07
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

@youwj: select 列A,max(列C)as 列C into #temp from Table  where 列C<时间

group by 列A;
这样就可以了啊

查看完整回答
反对 回复 2019-01-07
?
慕沐林林

TA贡献2016条经验 获得超9个赞

@webaspx: 我说大哥,你按我说的试过吗?确认查询不出来你要的结果?

这是表的数据:

这是结果:

查询的是C小于2011-10-17 17:47:18.937的,然后GroupBy A求得各项最大时间的数据。

查看完整回答
反对 回复 2019-01-07
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

@webaspx: 呵呵 、之前按你的试了、要建临时表的、还报错、就没试了、现在搞出来了、你最新的应该也是可以的、 辛苦了、 谢谢  分豆

查看完整回答
反对 回复 2019-01-07
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

select t1.A ,max( t1.c) from 表 as t1

group by t1.A

我不知道你的列B要不要考虑,你这个问题带入列B是错误的

如果列B一个20,一个30.你要取哪个呢??

查看完整回答
反对 回复 2019-01-07
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

我要查询的不是MAX这个时间 、、是给定一个时间、小于等于我这个时间的就行了、 列B的话就跟着这个时间的这列的

查看完整回答
反对 回复 2019-01-07
?
呼如林

TA贡献1798条经验 获得超3个赞

sql t1.A1, t1.B1, max(t1.C) over( partition by t1.A ) from t1 group by t1.A1

查看完整回答
反对 回复 2019-01-07
  • 12 回答
  • 0 关注
  • 1666 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信