【问题标题】:SQL Query help needed in SQL ServerSQL Server 中需要 SQL Query 帮助
【发布时间】:2017-09-28 17:39:28
【问题描述】:

我有一张表,其中记录了不同服务器在不同时间间隔的MYSQL_DISK_USAGE

示例:对于每台服务器 A、B、C、D...,我们每分钟获取 MYSQL_DISK_USAGE 的数据。

我们需要为每个服务器提取MYSQL_DISK_USAGE 中的LATEST VALUE

【问题讨论】:

  • 你是怎么定义最新值的,有时间列吗
  • 是的,我在表格中有一个时间列。
  • 请阅读this,了解一些改进问题的技巧。

标签: sql sql-server tsql


【解决方案1】:

就这么做?

select * from 
(
    select server, MYSQL_DISK_USAGE, 
    row_number() over(partition by server order by yourcolumntime desc) rang
    from yourtable
) tmp
where rang=1

【讨论】:

    【解决方案2】:

    考虑到YourTable 会有一个时间列存储那个MYSQL_DISK_USAGE 的时间

    SELECT Server_Name, MAX(Time) [Latest_Time]
    FROM YourTable
    GROUP BY Server_Name
    

    【讨论】:

    • 我们不能在 select 中使用 MYSQL_DISK_USAGE,因为它没有在 group by 中使用。
    猜你喜欢
    • 2011-07-10
    • 1970-01-01
    • 2012-03-05
    • 2016-07-04
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    相关资源
    最近更新 更多