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 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