【问题标题】:Creating a table using hourly readings from a current table使用当前表的每小时读数创建表
【发布时间】:2013-02-28 14:25:37
【问题描述】:

我有一个用于每秒记录值的表

datetime                float   float
25/02/2013 08:18:56     6       147 

我需要创建一个表,上个月每个小时都有一行。

任何帮助表示赞赏。

【问题讨论】:

  • 你使用的是什么 sql-server 版本?
  • 您希望“每小时单行”是什么样的?那个小时随机选择的行?第一排?将一小时的列加起来的行?你有两列名为 float????
  • 为什么需要基于已经存在的数据“创建表格”,而不是仅仅针对原始数据运行报表?您是否正在创建冗余数据来解决不同的问题?

标签: sql sql-server select create-table


【解决方案1】:

为什么不直接从表中查询你想要的?

以下查询将返回每小时的第一个读数:

select <columns you want here>
from (select t.*,
             row_number() over (partition by year(datetime), month(datetime), day(datetime),
                                             datepart(hour, datetime)
                               ) as seqnum
      from t
     ) t
where seqnum = 1

您可以将其放入表格中,在select 之后添加into 语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 2011-08-17
    • 2022-06-11
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    相关资源
    最近更新 更多