我有一张表格,其中包含按客户帐户和发布月份的销售信息。发布月份是一个格式为YYMM的文本字段。我可以轻松地编写一个查询以降序的方式返回不同的发布月份,但是如何从中选择第12行?我想在最近记录的12个月前查找发布月份,理想情况下为标量子查询,以便将其用作选择标准。目前这个参数是由UDF提供的,但我怀疑子查询的性能会更好。如何在表格中找到最近的第12个日期?
1
A
回答
2
您可以通过执行获得第12届:
select distinct month
from t
order by month desc
offset 11
fetch first 1 row only;
这是ANSI SQL,但它不会在所有的数据库。但是,大多数数据库支持类似的功能
+0
Doooh。很简单,当我再看一遍。 SELECT MIN(PostingMonth)AS StartPeriod FROM AS X(SELECT DISTINCT TOP 12 CustomerRebateTracker01Pivot.PostingMonth FROM CustomerRebateTracker01Pivot ORDER BY CustomerRebateTracker01Pivot.PostingMonth DESC); – Dougie
0
你可以使用一个“窗口功能”,以识别12行,如下...
;WITH cteExampleData
(
PostingMonth,
Data
)
AS
(
SELECT '1611', 'Test1'
UNION ALL SELECT '1612', 'Test2'
UNION ALL SELECT '1701', 'Test3'
UNION ALL SELECT '1601', 'Test4'
UNION ALL SELECT '1602', 'Test5'
UNION ALL SELECT '1604', 'Test6'
UNION ALL SELECT '1605', 'Test7'
UNION ALL SELECT '1501', 'Test8'
UNION ALL SELECT '1502', 'Test9'
UNION ALL SELECT '1503', 'Test10'
UNION ALL SELECT '1401', 'Test11'
UNION ALL SELECT '1403', 'Test12'
UNION ALL SELECT '1404', 'Test13'
UNION ALL SELECT '1405', 'Test14'
UNION ALL SELECT '1406', 'Test15'
)
SELECT *
INTO #ExampleData
FROM cteExampleData;
;WITH cteFind12thRow
AS
(
SELECT RowNumber = ROW_NUMBER() OVER (ORDER BY PostingMonth),
*
FROM #ExampleData
)
SELECT * FROM cteFind12thRow
WHERE RowNumber = 12
相关问题
- 1. 如何找到最近的日期?
- 2. 如何找到最近的一个星期的任意日期?
- 3. 使用最近的日期在两个表格中找到不同的值
- 4. 在日期列表中查找最接近的给定日期
- 5. 从多个表中找到最近的日期mysql
- 6. 查找最近的日期
- 7. 使用HIVE查找表格中的最近日期
- 8. 在mysql中,如何与第二个表连接并获取最近的日期?
- 9. 查找所有得分从第二次到最近的日期
- 10. 第二次到最近的日期重复的日期
- 11. 如何从表格中获取最近的日期
- 12. 从列表中找到最近的日期
- 13. 如何找到最近的生日
- 14. 选择日期在另一个表中最接近日期
- 15. 最近的日期和价格从SQL Server中的多个表
- 16. 在一个表格中设置12个月后的新日期
- 17. JavaScript数组找到最近的日期与当前日期+ dayscounter
- 18. 查找最近12个月+当前月销售(我的日期格式是mysql中的字符串)
- 19. 在日期列表中找出最接近的日期django queryset python
- 20. 在Postgres中,如何从表格中选择最近日期的行?
- 21. 如何获得表格中最近12个月的销售小计?
- 22. 如何通过SQL循环查找最近的最大日期?
- 23. PHP中的最近日期
- 24. 查找距今天最近的日期
- 25. 如何在一个月内找到第一个和最后一个日期
- 26. jquery:如何找到第二个最接近的anscestor?
- 27. 最近表格的最近表格
- 28. 找到最接近的日期(但不是同一日期)中的R
- 29. vba如果它匹配找到最接近的日期
- 30. 从数据库日期找到最接近的日期时遇到的麻烦
你可以张贴一些代码?另外,你能标记你正在使用的RDBMS吗? –
ANSI SQL将'OFFSET'子句与'FETCH FIRST'结合在一起。 – jarlh