你一个问题问怎么反反复复问呀,不是都采纳好几个答案了吗,没解决问题采纳啥
你想找到相同LINE_ID下最小timediff,那肯定是查LINE_ID和timediff,不要把乱七八糟不相干的东西放一起查
如果还想知道跟这个timediff有关的其他信息,那就应该把主键带出来,然后利用主键进行left join去查其他信息,而不是都放select里
select line_id,order_no,br_no,status,started_dtime,now() - started_dtime as timediff
,now() - dtime as mintimediff
from process a
left join (
select line_id,status,max(started_dtime) dtime
from process
group by line_id,status
) b on a.line_id=b.line_id and a.status=b.status
where a.status='5'
参考GPT和自己的思路:
非常感谢您向我咨询这个问题。针对您的需求,以下是一段符合要求的SQL语句:
SELECT LINE_ID, MIN(now()-STARTED_DTIME) as min_timediff,
COUNT(DISTINCT FIELD1) as count_field1,
COUNT(DISTINCT FIELD2) as count_field2,
COUNT(DISTINCT FIELD3) as count_field3
FROM 数据表
WHERE STATUS=5
GROUP BY LINE_ID;
以上语句根据LINE_ID分组,计算每个分组中最小timediff值,以及不同字段的数量。
希望本答案能够对您有所帮助。如有其它问题,请随时向我咨询。