我的表有一个名为START_DATE的列,其类型为datetime,id由ID表示。我想在START_DATE之前找到同一个表中的记录数。
这是我的尝试
select ID,count(*) from dbo.MyTable
where START_DATE < (select START_DATE from dbo.MyTable)
group by ID
但它不起作用。
答案 0 :(得分:3)
这就是你想要的:
SELECT t.ID,t.start_date,max(t.OTHER_COLUMN),max(T.OTHER_COLUMN2)...,count(*) from dbo.MyTable t
INNER JOIN dbo.MyTable s
ON(t.id = s.id and t.start_date > s.start_date)
GROUP BY t.ID,t.start_date
或使用相关查询:
SELECT t.ID,
t.start_date,
t.OTHER_COLUMN,
t.OTHER_COLUMN2,
......
(SELECT COUNT(*) FROM dbo.MyTable s
WHERE t.id = s.id and t.start_date > s.start_date)
FROM dbo.MyTable t