栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何填补空白?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何填补空白?

您有2个要解决的问题。第一个问题是如何填补空白。第二个问题是为那些缺少的记录填充“计数”字段。

问题1:这可以通过使用

Dates Lookup table
或创建一个来解决
recursive common tableexpression
。如果可以的话,我建议为此创建一个“日期查询”表。如果您不能创建这样的表,那么您将需要这样的东西。

WITH CTE AS (  SELECt MAX(dt) maxdate, MIN(dt) mindate  FROM yourtable  ),RecursiveCTE AS (  SELECt mindate dtfield  FROM CTE  UNIOn ALL  SELECt DATEADD(day, 1, dtfield)  FROM RecursiveCTE R     JOIN CTE T      ON R.dtfield < T.maxdate  )

这将为您创建一个日期列表,该

MIN
日期列表从表中的日期开始,以结束
MAX

问题2:在这里可以

correlated subquery
派上用场(就像我通常在远离它们的地方一样),可以从原始表中获取最后一个cnt:

SELECt r.dtfield,    (SELECT TOP 1 cnt    FROM yourtable     WHERe dt <= r.dtfield     ORDER BY dt DESC) cntFROM RecursiveCTE r
  • SQL小提琴演示


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614387.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号