我怎样才能 select 在 SQL 服务器中第一个插入行?

How can I select first inserted row in SQL Server?

这个问题可能与 Whosebug 无关。但这是我的问题,我不知道语法。 通过此查询,我 select 在他们的日期时间进行交易的人。 这是我的查询

我想编写 select 他们第一个 TransactionsTimeStamp 的查询?

我假设您正在寻找 ROW_NUMBER, you could use them for example with a Common Table Expression (CTE):

这样的排名函数
WITH CTE AS
(
    SELECT ..., RN = ROW_NUMBER() OVER (PARTITION BY FirstName, LastName 
                                        ORDER BY TransactionsTimeStamp ASC)
    FROM dbo.TableName ... (join tables here)
)
SELECT ....
FROM CTE
WHERE RN = 1

... 是您想要 select 的列,您可以 select 全部,而不是 GROUP BY.

但是如果您只想 select 每个用户的 TransactionsTimeStamp 列:

SELECT MIN(TransactionsTimeStamp) AS TransactionsTimeStamp, FirstName, LastName 
FROM dbo.tableName   ... (join tables here)
GROUP BY FirstName, LastName 

您查询中的问题是您按日期列分组。因此,您将获得所有不同的 Date 值。您应该仅按 FirstName 和 LastName 分组,并将一些聚合函数应用于 Date 列。

如果只需要最小日期,那么您可以使用如下聚合函数获取该日期:

DECLARE @test TABLE
    (
      first_name NVARCHAR(MAX) ,
      last_name NVARCHAR(MAX) ,
      transaction_date DATETIME
    )

INSERT  INTO @test
VALUES  ( 'A', 'B', '20150101' )
INSERT  INTO @test
VALUES  ( 'A', 'B', '20150120' )
INSERT  INTO @test
VALUES  ( 'C', 'D', '20150103' )
INSERT  INTO @test
VALUES  ( 'C', 'D', '20150119' )



SELECT  first_name ,
        last_name ,
        MIN(transaction_date) AS min_transaction_date
FROM    @test
GROUP BY first_name ,
        last_name

输出:

first_name  last_name   min_transaction_date
A   B   2015-01-01 00:00:00.000
C   D   2015-01-03 00:00:00.000
Select firstname, lastname, min(date) as minimum_date from clubprofile_cp
group by firstname, lastname