sql - 窗口函数中的 IIF 或大小写
问题描述
我在表中有一些时间戳,我想创建一个虚拟变量(0 或 1),在对时间戳进行排序后测试上面的行是否等于当前行。我需要在不同的分区中执行此操作。SQL Server 中是否有可以执行此操作的窗口函数?
所以我知道我的按列分区和按列排序。根据我对窗口函数的了解,我可能需要使用 rank 函数,但是有没有办法用嵌套函数编写它,使用IIF
andLEAD
或LAG
检查分区中的行之间的某些条件?
解决方案
SQL 表表示无序集。如果您有一个与时间戳分开的排序列,您可以使用:
select t.*,
(case when lag(timestamp) over (partition by <partition col> order by <order col>) = timestamp
then 1 else 0
end) as flag
from t;
推荐阅读
- graphql - Apollo GraphQL 连接失败
- vue.js - 浏览器 vuex 存储数据,但是当我从 vuex 检索数据时,它显示我清空每个数组
- iis - 无法访问的虚拟目录导致 500.19 错误报告缺少 web.config 文件并且未触发重写规则
- python - Python在子文件夹中导入csv文件
- python - Python Pandas:检查列表中的项目是否在 df 索引中,其中 df 是多索引 df
- reactjs - 在 DataGrid 列中单击按钮时如何删除一行?
- docker - Docker:无法创建上下文
- vodapay-miniprogram - 作为开发人员,我如何才能访问 Vodapay 以进行测试?
- python - Python - MySQL 无法插入数据(但相同的语句在 MySQLWorkbench 中有效
- c# - 将 Linq 代码从 VB.Net 转换为 C#(组加入)