0

カテゴリに属する​​すべてのレコードをカウントし、最新のレコードに関連付けられたデータを次のように取得したい

CREATE TABLE #TestTable

(

SomeColumn VARCHAR(1)
,data varchar(50)
,CDate datetime
)

GO

INSERT INTO #TestTable VALUES ('A','abdss',getdate())
INSERT INTO #TestTable VALUES ('A','abserts',getdate())
INSERT INTO #TestTable VALUES ('A','awabs',getdate())
INSERT INTO #TestTable VALUES ('A','abrfgts',getdate())
INSERT INTO #TestTable VALUES ('A','abasds',getdate())
INSERT INTO #TestTable VALUES ('A','abasds',getdate())
INSERT INTO #TestTable VALUES ('A','aberzsdsfs',getdate())
INSERT INTO #TestTable VALUES ('A','abarfzdfs',getdate())
INSERT INTO #TestTable VALUES ('B','abzdsfs',getdate())

--SELECT * , COUNT(SomeColumn) From #TestTable
--GROUP BY SomeColumn 

drop table  #TestTable

必要な出力は

SomeColumn | Data          | Date              |Other Associates Records <br/>
A          | abarfzdfs     |last A record date   |7<br/>
B          | abzdsfs       |last B record date   |0<br/>
4

1 に答える 1

0

使用しているSQLサーバーのバージョンを指定していません。ただし、sql-server2005以降を使用している場合。多分このようなもの:

;WITH CTE
AS
(
    SELECT
        ROW_NUMBER() OVER(PARTITION BY SomeColumn ORDER BY CDate) AS RowNbr,
        COUNT(SomeColumn) OVER(PARTITION BY SomeColumn) AS Counts,
        test.*
    FROM
        #TestTable AS test
)
SELECT
    *
FROM
    CTE
WHERE
    CTE.RowNbr=1
于 2012-05-03T06:18:52.300 に答える