我在SQL一组数据,看起来像如下:计算时间
╔═══════════╦═══════╗
║ TimeStamp ║ State ║
╠═══════════╬═══════╣
║ 7:10 AM ║ A ║
║ 7:11 AM ║ A ║
║ 7:12 AM ║ A ║
║ 7:13 AM ║ B ║
║ 7:14 AM ║ B ║
║ 7:15 AM ║ A ║
║ 7:16 AM ║ A ║
║ 7:17 AM ║ C ║
║ 7:18 AM ║ C ║
╚═══════════╩═══════╝
我试图计算每个状态的持续时间。但是,我想要分离每个状态序列并分别计算它们的差异,分离重复的状态。所以我想上述数据返回如下所示:
╔═══════╦════════════════════╗
║ State ║ Duration (minutes) ║
╠═══════╬════════════════════╣
║ A ║ 2 ║
║ B ║ 1 ║
║ A ║ 1 ║
║ C ║ 1 ║
╚═══════╩════════════════════╝
有人可以帮忙吗?我怎样才能编写一个返回给我这个数据的SQL查询?
谢谢!
SQL的什么 “品牌” 吗?例如甲骨文? MSSQL? (它可以对解决方案选项产生重大影响)另外:是否有日期列? –
除了“州”列以外是否还有其他顺序?正如你所看到的,使用简单的“GROUP BY”在这里不起作用,因为你实际上需要“State”列的子组(因此也是我的问题)。 –
https://www.simple-talk.com/sql/t-sql-programming/the-sql-of-gaps-and-islands-in-sequences/ http://sqlmag.com/sql-server-2012 /求解隙和 - 岛屿增强窗函数 –