如何使用SQL获取具有最小时间戳的行

如何使用SQL获取具有最小时间戳的行,sql,sql-server,sql-server-2008,sqlite,Sql,Sql Server,Sql Server 2008,Sqlite,有人能帮我解决这个问题吗? (请参见下面的附图) 样本表 结果应该是什么 试试这个: select min(timestamp), employeeCode from table_name where employeeCode in (select employeeCode from table_name group by employeeCode) 试试这个: select min(timestamp), employeeCode from table_name where employe

有人能帮我解决这个问题吗? (请参见下面的附图)

样本表

结果应该是什么

试试这个:

select min(timestamp), employeeCode from table_name where employeeCode in (select employeeCode from table_name group by employeeCode)
试试这个:

select min(timestamp), employeeCode from table_name where employeeCode in (select employeeCode from table_name group by employeeCode)

我认为一个基本的小组可以做到这一点:

SELECT employeeCode, value, min(timestamp)
FROM table
GROUP BY employeeCode, value

我认为一个基本的小组可以做到这一点:

SELECT employeeCode, value, min(timestamp)
FROM table
GROUP BY employeeCode, value

这看起来像是一个案例

请参见此示例:

SELECT EmployeeCode
    , Timestamp
    , Value
FROM (
    SELECT RANK() OVER (PARTITION BY EmployeeCode ORDER BY Timestamp) AS RN
        , EmployeeCode
        , Timestamp
        , Value
    FROM dbo.SampleTable
    ) AS ST
WHERE ST.RN = 1;
它将为每一行生成一个数字(1,2,3,4,…n)

请注意,我正在按进行一个
分区,它为每个不同的EmployeeCode重置编号。所以这个查询几乎为每个员工生成唯一的编号,它取决于时间戳值。最低时间戳值为1

官方文件称

如果一个列组有两行或多行并列,则每个并列的行接收相同的数据 等级例如,如果两位顶级销售人员的SalesYTD相同 价值,他们都是排名第一的。排名第二的销售员 SalesYTD排名第三,因为有两行是 排名更高。因此,秩函数并不总是返回 连续整数

因为您只提供了一个屏幕截图,所以我在行旁边添加了一个快速数字。所以你可以想象它的样子


这看起来像是一个

请参见此示例:

SELECT EmployeeCode
    , Timestamp
    , Value
FROM (
    SELECT RANK() OVER (PARTITION BY EmployeeCode ORDER BY Timestamp) AS RN
        , EmployeeCode
        , Timestamp
        , Value
    FROM dbo.SampleTable
    ) AS ST
WHERE ST.RN = 1;
它将为每一行生成一个数字(1,2,3,4,…n)

请注意,我正在按
进行一个
分区,它为每个不同的EmployeeCode重置编号。所以这个查询几乎为每个员工生成唯一的编号,它取决于时间戳值。最低时间戳值为1

官方文件称

如果一个列组有两行或多行并列,则每个并列的行接收相同的数据 等级例如,如果两位顶级销售人员的SalesYTD相同 价值,他们都是排名第一的。排名第二的销售员 SalesYTD排名第三,因为有两行是 排名更高。因此,秩函数并不总是返回 连续整数

因为您只提供了一个屏幕截图,所以我在行旁边添加了一个快速数字。所以你可以想象它的样子



您想要每个id的最小时间戳吗?你的时间戳是datetime格式吗?Hello@Arvaan是的,它是相应的值。您可以在提供的链接上看到示例图片。欢迎使用stackoverflow。请阅读。选项一:实际阅读一些SQL文档,并提出您自己的方法(尚未完全有效)。然后我们来看一看-选项二:等待,看看是否有人愿意帮助
top-N-per-group
您想要每个id的最小时间戳吗?你的时间戳是datetime格式吗?Hello@Arvaan是的,它是相应的值。您可以在提供的链接上看到示例图片。欢迎使用stackoverflow。请阅读。选项一:实际阅读一些SQL文档,并提出您自己的方法(尚未完全有效)。然后我们来看一看-选项二:等待,看看是否有人愿意帮助
top-N-per-group
Hello@Arvaan,我使用了上面提供的代码,不幸的是,缺少列值(就像示例图片中的一样)。oops。我以为是您的输入表Hello@Arvaan,表中没有列值。Hello@Arvaan,我使用了上面提供的代码,不幸的是,缺少列值(就像示例图片中的一样)。oops。我以为是您的输入表Hello@Arvaan,表中没有列值。Hello@Zohar,我尝试了您的代码,但它显示了列值及其时间戳和EmployeeCode中的所有项目。我需要的只是min(Timestamp)和它的EmployeeCode及其值。(就像我上面提供的图片所示)Hello@Zohar,我尝试了你的代码,但它显示了列值及其时间戳和EmployeeCode中的所有项目。我需要的只是min(Timestamp)和它的EmployeeCode及其值。(正如我上面提供的图片所示)Hello@Evaldas Buinauskas,感谢您的详细解释,注意到:)关于你提供的代码,我有一些问题。结果是完全错误的。什么是不对的?最好是发布一个查询来生成一些数据,而不是截屏。这将有助于构建查询。:)Hello@Evaldas Buinauskas,我想发布我的代码,但是我想,如果我发布一个我需要的输出的屏幕截图,我的问题会更容易理解。你只需要发布一些示例数据作为文本和预期输出。Hello,这是我使用你提供的代码时的示例数据结果。请点击链接。:)您好@Evaldas Buinauskas,感谢您的详细解释,注意到:)关于你提供的代码,我有一些问题。结果是完全错误的。什么是不对的?最好是发布一个查询来生成一些数据,而不是截屏。这将有助于构建查询。:)Hello@Evaldas Buinauskas,我想发布我的代码,但是我想,如果我发布一个我需要的输出的屏幕截图,我的问题会更容易理解。你只需要发布一些示例数据作为文本和预期输出。Hello,这是我使用你提供的代码时的示例数据结果。请点击链接。:)