2
我有一个记录日期的日志表。获取多个电话的日期
我想找出第二次和第三次电话的日期。
- 我用MIN(dateCreated会)获得第一个呼叫
- 我得到使用MAX(dateCreated会)的最后日期。这也可能是第二个电话。
找出第二个和第三个电话的日期的最佳方法是什么?
我有一个记录日期的日志表。获取多个电话的日期
我想找出第二次和第三次电话的日期。
找出第二个和第三个电话的日期的最佳方法是什么?
我只想得到所有三排一起在一个查询
SELECT TOP 3 *
FROM LogTable
ORDER BY LogDate ASC -- DESC if you need the last 3
如果你确实需要他们一个接一个,你可以使用:
WITH LogByDate AS
(
SELECT LogDate,
ROW_NUMBER() OVER (ORDER BY LogDate) AS 'RowNumber'
FROM LogTable
)
SELECT *
FROM LogByDate
WHERE RowNumber = 2; -- RowNumber=3 for the third line
尝试使用分析功能:
;WITH CTE AS
(
SELECT *, ROW_NUMBER() OVER(PARTITION BY CallId ORDER BY DateCreated) Corr
FROM dbo.YourTable
)
SELECT *
FROM CTE
WHERE Corr IN (2,3)
我喜欢你的KISS方法。我建议你的WHERE应该在哪里(2,3),对吧? – DOK
@DOK谢谢:)我刚刚使用了RowNumber = 2,因为我将问题解释为“我如何获得第二个电话的日期?那么我如何获得第三个?” –