求助解题
sql吧
全部回复
仅看楼主
level 1
有一张订单表table,记录了某网约车公司全部的订单信息,包括time,city_id,order_id,did,pid,分别对应时间、城市ID、订单ID、司机ID和乘客ID,其中,time为时间戳格式;请使用sql获取今天每个司机的第一个订单ID,输出两列,即did、order_id
2022年09月05日 08点09分 1
level 13
sql无解,sql的时间戳类型和真实时间无关
mysql按司机,time格式化日期后分组,取first
2022年09月05日 14点09分 3
level 8
这题的难点就是时间戳转时间。
把今天保留年月日并转换成时间戳,只要大于这个时间戳的降序第一条即可解之
2022年09月08日 01点09分 4
level 6
时间戳是啥[疑问]
2022年09月14日 07点09分 5
时间戳就是对时间(date或datetime类型)使用数字签名技术产生的数据。一般数据库(MYSQL)上的时间戳就是默认一个字段类型,其实就算一长整型数据,而且自带函数转成时间。如果不是数据库层面而是系统加密层面的算法就更复杂了,但是同样叫时间戳
2022年09月15日 01点09分
@咸鱼初号机💤 谢谢老哥
2022年09月15日 01点09分
level 1
截取time的年月日,再group by did、截取的年月日,select min(time), 这样可以查到每天每个司机第一个订单的时间,外面再套一层select did,order_id from table where time in ( ……),应该可以查到
2022年09月18日 10点09分 6
level 1
窗口函数通过did分区,通过time排序就可以了,where中记得取今天和第一
2022年09月20日 03点09分 7
level 1
WITH T1 AS(
SELECT ROW_NUMBER()OVER(PARTITION BY DID,CONVERT(NVARCHAR(20),TIME,23) ORDER BY order_id)AS 序号,DID,order_id
FROM table
)
SELECT DID,order_id
FROM T1
WHERE 序号=1 AND SRRQ=GETDATE()
2022年10月18日 06点10分 8
1