DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: xmsian
今日帖子: 118
在线用户: 27
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 dbyoung (dbyoung) ▲▲▲▲▲ -
普通会员
2019/1/11 9:04:55
标题:
求SQL查询语句 浏览:489
加入我的收藏
楼主: 数据库结构:
ID         Time
2664060494 2019-01-08 10:00:00
2664060494 2019-01-08 11:00:00
2664060494 2019-01-09 09:00:00
2664060494 2019-01-09 08:00:00
5946315689 2019-01-08 12:00:00
5946315689 2019-01-08 14:00:00
5946315689 2019-01-10 15:00:00
5946315689 2019-01-10 13:00:00

取时间最大的行:

2664060494 2019-01-08 11:00:00
2664060494 2019-01-09 09:00:00
5946315689 2019-01-08 14:00:00
5946315689 2019-01-10 15:00:00

求这个SQL语句写法。

望数据库高手帮助。

谢谢。
----------------------------------------------
Delphi7爱好者
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2019/1/11 9:12:22
1楼: max(time),,
group by id
----------------------------------------------
--
作者:
男 chenyanfei (chenyanfei) ★☆☆☆☆ -
盒子活跃会员
2019/1/11 9:46:23
2楼: 楼上正确
----------------------------------------------
-
作者:
男 inbreak (入侵) ★☆☆☆☆ -
盒子活跃会员
2019/1/11 10:49:05
3楼: --挺简单的吧。
--MSSQL2008R2


DECLARE @t TABLE (id VARCHAR(20),[time] SMALLDATETIME)

INSERT @t
        ( id, [time] )
VALUES  ('2664060494','2019-01-08 10:00:00'),
    ('2664060494','2019-01-08 11:00:00'),
    ('2664060494','2019-01-09 09:00:00'),
    ('2664060494','2019-01-09 08:00:00'),
    ('5946315689','2019-01-08 12:00:00'),
    ('5946315689','2019-01-08 14:00:00'),
    ('5946315689','2019-01-10 15:00:00'),
    ('5946315689','2019-01-10 13:00:00')
    
SELECT ID,[TIME]=MAX([TIME])
FROM @t
GROUP BY ID,CONVERT(VARCHAR(10),[TIME],121)
ORDER BY ID
此帖子包含附件:
PNG 图像
大小:27.4K
----------------------------------------------
我是菜鸟,己经搞了十多年了,但是我仍然很菜。
作者:
男 tianpanhaha (tianpanhaha) ▲▲▲△△ -
注册会员
2019/1/11 11:08:04
4楼: 时间为什么要用文本存呢?
----------------------------------------------
 QQ群:325010556 欢迎加入。
作者:
男 dbyoung (dbyoung) ▲▲▲▲▲ -
普通会员
2019/1/11 12:42:06
5楼: 时间是时间格式,不是文本。
在帖子里,只是随便造了几行数据。
----------------------------------------------
Delphi7爱好者
作者:
男 dbyoung (dbyoung) ▲▲▲▲▲ -
普通会员
2019/1/11 12:43:43
6楼: 3楼,为什么把数据都放在查询里面。
数据是从表中获取的。我只是随便造了几行数据,便于理解。


用 Group by,其它字段就不能显示了。
表中不只两个字段。
----------------------------------------------
Delphi7爱好者
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2019/1/11 19:28:25
7楼: 简单点就自关联。要有唯一key,别告诉我你的表没有主键。
效率高点就row_number()
----------------------------------------------
--
作者:
男 inbreak (入侵) ★☆☆☆☆ -
盒子活跃会员
2019/1/12 10:00:52
9楼: 这个方法不能说最好,估计还行。

原则上,应该一句SQL是搞不定的。就算能搞定。使用SQL嵌套也不是什么明智的选择。

嵌套效率很低

MSSQL2008对SQL嵌套的支持不如 MSSQL2000。所以,用一个过程比较好。
此帖子包含附件:
PNG 图像
大小:48.0K
----------------------------------------------
我是菜鸟,己经搞了十多年了,但是我仍然很菜。
作者:
男 dbyoung (dbyoung) ▲▲▲▲▲ -
普通会员
2019/1/12 10:44:23
10楼: inbreak ,的确是数据库高手。
我对数据库了解甚少。也不会写存储过程。的确是想就用一行语句搞定。
没想到这么复杂。
谢谢谢谢!
----------------------------------------------
Delphi7爱好者
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2019/1/14 17:33:26
11楼: 挺简单一事,写什么存储过程。

而且,嵌套查询也不会有多低效,低效就去查自己的表是怎么设计的。
----------------------------------------------
--
作者:
男 hdcopy (hdcopy) ▲▲▲▲▲ -
普通会员
2019/1/17 15:26:02
12楼: 要学会自己查资料
先百度 "同组取最大"; 看到的简单SQL,可能实际执行报错。
那么其实你需要知道,mysql高版本,sqlserver,oracle
中分组统计时,select的可用字段是有限制的。你看到的简单
sql是基于早期mysql的(知识点1)
所以我们继续 百度 "同组取最大 sqlserver",看到的简单SQL,
就是那个自关联的,执行后基本能满足需要了。
但如果你多翻几篇,会看到bahamut8348 提到的row_number,
试用了以后你会发现这个也可以啊,那么和前面的区别呢,
如果有两条一样的数据符合要求,自关联会把两条都取出来,
row_number就只会取一条,其实后面方法的重点是over。
----------------------------------------------
-
作者:
男 hdcopy (hdcopy) ▲▲▲▲▲ -
普通会员
2019/1/17 15:29:36
13楼: 要了解over,row_number等可以继续百度,会看到
开窗,对sql有兴趣的话,不妨深入了解这个。

综上,能直接提出row_number方法的bahamut8348应该水平会稍高点吧。
----------------------------------------------
-
作者:
男 somemak (mak) ▲▲▲▲△ -
注册会员
2019/1/17 16:24:15
14楼: select XX.ID,addtime(XX.A,XX.B)  
//将日期和时间合并成一个datetime字段,合并函数具体看后台数据库
from (
select ID,date(TIME) as A,max(time(TIME)) as B 
//按ID,TIME字段中的日期部分分组,找出TIME字段中最大的时间。date,time函数具体看后台数据库
from TableName 
group by ID,date(TIME)
) XX

这里例子用的是MySQL5.X。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行42.96875毫秒 RSS