Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 获取每个id的最小值_Sql_Sql Server_Time_Min - Fatal编程技术网

Sql 获取每个id的最小值

Sql 获取每个id的最小值,sql,sql-server,time,min,Sql,Sql Server,Time,Min,我想知道每个电话的最短时间。每个调用可以有七个部分,所有部分都记录在同一个调用id上。我想做的是确定每个调用id的最小时间,但是当我以一种方式查询它时,我会得到重复的值,或者如果我以另一种方式查询它,我只会得到最小值 我希望最终能够按小时统计所有电话 这是我一直在使用的查询,用于尝试获取唯一的调用id和时间,但目前返回的是重复的 例如: Callid 1=2014-07-04 16:37:22.043 callid 2=2014-07-04 16:37:23.370 我想要的只是来自1的值 se

我想知道每个电话的最短时间。每个调用可以有七个部分,所有部分都记录在同一个调用id上。我想做的是确定每个调用id的最小时间,但是当我以一种方式查询它时,我会得到重复的值,或者如果我以另一种方式查询它,我只会得到最小值

我希望最终能够按小时统计所有电话

这是我一直在使用的查询,用于尝试获取唯一的调用id和时间,但目前返回的是重复的

例如:

Callid 1=2014-07-04 16:37:22.043

callid 2=2014-07-04 16:37:23.370

我想要的只是来自1的值

select t.callid, (select min(timein) from loggeddata t2 where t2.callid = t.callid and t2.timein > t.timein
                    ) as 'mintime'
      from loggeddata t

不需要子查询,只需使用
groupby
定义分组表达式并将聚合添加为列:

select t.callid, 
       min(timein) as 'mintime' 
from loggeddata 
GROUP BY callid

最后也谢谢你这么简单的回答,这是一个更大问题的一部分,显而易见的答案对我来说并不突出!同样感谢您的回答抱歉,我标记了第一个给出答案的人,您只能有一个正确答案,因此当我使用的答案与您的答案相同时。嗨,谢谢您的回答,将其转换为cte是我的下一个选择,目的是使整个查询变得更简单,因为它得到了分配给它的更多部分,然后只是这一点,我没有足够的声誉来标记这个答案,尽管没有问题……如果它给出了你想要的解决方案,那么它就不仅仅是得分:)
select callid,min(timein) from loggedata group by callid;
;WITH CTE AS 
(
select t.callid, (select min(timein) from loggeddata t2 where t2.callid = t.callid and t2.timein > t.timein
                    ) as 'mintime'
      from loggeddata t

)

Select c.callid,c.mintime from (select
             row_number() over (partition by mintime order by callid desc) as seqnum
      from  CTE )c
where seqnum = 1