Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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 除日期/时间列外,还包含多个列的表。如何查询和避免重复日期戳?_Sql_Sql Server_Datetime - Fatal编程技术网

Sql 除日期/时间列外,还包含多个列的表。如何查询和避免重复日期戳?

Sql 除日期/时间列外,还包含多个列的表。如何查询和避免重复日期戳?,sql,sql-server,datetime,Sql,Sql Server,Datetime,我在SQL Server中有一个表,除了其他列之外,还有下面的日期/时间戳列。如何查询此表以避免在结果中获得重复的日期?我不在乎查询返回哪个时间戳。我只想要唯一的日期,例如,只有一个2018年5月5日,如果可能的话,它对应的时间戳和它对应的RPM值。类似地,2018年11月6日,带有相应的rpm值和时间戳等 RPM Date-time 7932 06/04/2018 16:30:01 +00:00 8314 06/11/2018 16:30:00 +00:00 874

我在SQL Server中有一个表,除了其他列之外,还有下面的日期/时间戳列。如何查询此表以避免在结果中获得重复的日期?我不在乎查询返回哪个时间戳。我只想要唯一的日期,例如,只有一个2018年5月5日,如果可能的话,它对应的时间戳和它对应的RPM值。类似地,2018年11月6日,带有相应的rpm值和时间戳等

RPM         Date-time
7932    06/04/2018 16:30:01 +00:00
8314    06/11/2018 16:30:00 +00:00
8748    06/12/2018 20:52:10 +00:00
8067    06/05/2018 20:15:00 +00:00
8063    06/05/2018 12:45:34 +00:00
8067    06/05/2018 20:15:00 +00:00
8070    06/07/2018 12:02:16 +00:00
8144    06/08/2018 20:30:00 +00:00
8144    06/08/2018 20:30:00 +00:00
8314    06/11/2018 16:30:00 +00:00
8314    06/11/2018 16:30:00 +00:00
8314    06/11/2018 16:30:00 +00:00
8748    06/12/2018 20:52:10 +00:00
8748    06/12/2018 20:52:10 +00:00
9046    06/14/2018 12:14:46 +00:00
9192    06/15/2018 11:13:23 +00:00
9274    06/15/2018 20:30:04 +00:00
9293    06/20/2018 18:47:10 +00:00
9562    06/22/2018 12:30:00 +00:00
10141   06/25/2018 18:26:13 +00:00
10443   06/28/2018 18:35:21 +00:00
10500   06/29/2018 11:14:42 +00:00
10500   06/29/2018 11:14:42 +00:00
10500   06/29/2018 11:14:42 +00:00
10506   06/29/2018 15:45:22 +00:00
10506   06/29/2018 15:45:22 +00:00
10506   06/29/2018 15:45:22 +00:00
10526   07/05/2018 14:14:49 +00:00
10526   07/05/2018 14:14:49 +00:00
10526   07/05/2018 14:14:49 +00:00
10526   07/05/2018 14:14:49 +00:00

我认为我们应该:

select distinct RPM, Date-time
from table t;
但是,我假设您的表也有其他列,如果有,那么您可以使用
row\u number()
函数:

select t.*
from (select *, row_number() over (partition by rpm order by date-time) as seq
      from table
     ) t
where seq = 1;

我认为我们应该:

select distinct RPM, Date-time
from table t;
但是,我假设您的表也有其他列,如果有,那么您可以使用
row\u number()
函数:

select t.*
from (select *, row_number() over (partition by rpm order by date-time) as seq
      from table
     ) t
where seq = 1;

如果您需要区分RPM和“日期时间”的日期部分,则可以按如下方式实现:

SELECT Distinct RPM, CONVERT(VARCHAR(10),Date-time,111) FROM Table1

如果您需要区分RPM和“日期时间”的日期部分,则可以按如下方式实现:

SELECT Distinct RPM, CONVERT(VARCHAR(10),Date-time,111) FROM Table1

您需要强制转换和分组:

select rpm,cast([Date-time] as date) as _date
from table t
group by rpm,cast([Date-time] as date)

您需要强制转换和分组:

select rpm,cast([Date-time] as date) as _date
from table t
group by rpm,cast([Date-time] as date)

您可以按RPM分组,但随后必须为返回的每个列(或按它们分组)提供聚合函数:

e、 g


您可以按RPM分组,但随后必须为返回的每个列(或按它们分组)提供聚合函数:

e、 g



编辑问题添加预期结果。如果您只查询这两列,则一个不同的选择就足够了。如果希望选择其他列,则应将它们添加到示例中并提供预期输出。编辑问题“添加预期结果”。如果仅查询这两列,则只需进行一次不同的选择即可。如果您希望选择其他列,那么您应该将它们添加到示例中,并提供预期的输出。我认为这不会达到用户想要的效果,我认为他们的意思是,他们只希望返回每个rpm记录中的一条(这适用于答案的第一部分)。我认为您需要按rpm、日期和时间进行分区(这将允许您按日期从rpm集合中选择一行)。问题已针对我想要的结果进行了修改。我不认为这将实现用户想要的,我认为他们的意思是,他们只希望返回每个rpm记录中的一条(这适用于答案的第一部分)。我认为您需要按rpm、日期和时间进行分区(这将允许您按日期从RPM集合中选择一行).问题已被修改为我在results@SBFrancies-它仍然返回重复的日期。请参见以下结果:2018年6月4日16:30:01+00:00 06/05/2018 12:45:34+00:00 06/05/2018 20:15:00+00:00 06/07/2018 12:02:16+00:00 06/2018 20:30:00+00:00 06/11/2018 16:30:00+00:00 06/12/2018 20:52:10+00:00 06/14/2018 12:14:14+00:00 06/15/2018 11:13:23+00:00 06/15/2018 20:30:04+00:00 06/20/2018 18:47:10+00:00 06/22/2018 12:30:00+00:00 06/25/2018 18:26:13+00:00 06/28/2018 18:35:21+00:00 06/29/2018 11:14:42+00:00 06/29/2018 15:45:22+00:00所以您不需要获得每分钟转数?@SBFrancies它仍然返回重复的日期。请参见下面的结果06/04/2018 16:30:01 +00:00 06/05/2018 12:45:34 +00:00 06/05/2018 20:15:00 +00:00 06/07/2018 12:02:16 +00:00 06/08/2018 20:30:00 +00:00 06/11/2018 16:30:00 +00:00 06/12/2018 20:52:10 +00:00 06/14/2018 12:14:46 +00:00 06/15/2018 11:13:23 +00:00 06/15/2018 20:30:04 +00:00 06/20/2018 18:47:10 +00:00 06/22/2018 12:30:00 +00:00 06/25/2018 18:26:13 +00:00 06/28/2018 18:35:21+00:00 06/29/2018 11:14:42+00:00 06/29/2018 15:45:22+00:00所以你不需要获得每分钟转速?@KeithL-它仍然会给出重复的日期见下面的结果。我认为这是因为2018-06-05 2018-06-05 2018-06-07 2018-06-08 2018-06-11 2018-06-12 2018-06-14 20相同日期的时间戳不同18-06-15 2018-06-15 2018-06-20 2018-06-22 2018-06-25 2018-06-28 2018-06-29 2018-06-29 2018-07-05具有多个RPM值的日期以重复的形式结束。这不是你的问题。当出现超过1 RPM时,你必须决定你想要什么。从组中取出并以某种方式聚合(最大值、最小值、平均值)@keithL你的意思是这样吗?从表t中选择min(rpm),cast([Date-time]as-Date)作为_-Date按cast分组([Date-time]as-Date)@所有这些都会给你一个答案。你应该根据你的要求来做。@KeithL-它仍然会给出重复的日期见下面的结果。我认为这是因为2018-06-05 2018-06-05 2018-06-07 2018-06-08 2018-06-11 2018-06-12 2018-06-14 2018-06-15 2018相同日期的时间戳不同-06-15 2018-06-20 2018-06-22 2018-06-25 2018-06-28 2018-06-29 2018-29 2018-07-05具有多个RPM值的日期最终是重复的。这不是你的问题。当出现超过1 RPM时,你必须决定你想要什么。从组中取出并以某种方式聚合(最大、最小、平均)@keithL你的意思是这样吗?从表t中选择min(rpm),cast([Date time]as Date)as_Date,按cast([Date time]as Date)@Alli进行分组,这会给你一个答案。你应该根据你的要求来确定。