我有一个例子数据如下。
+---------+------------+--------+
| user id | sequence | Action |
|---------|------------|--------|
| 12345 | 1 | Run |
| 12345 | 2 | Sit |
| 12345 | 3 | Sit |
| 12345 | 4 | Run |
| 12345 | 5 | Run |
| 12345 | 6 | Sit |
+---------+------------+--------+
现在我想结果应该是这样的:
+---------+---------+
| user id | Action |
|---------|---------|
| 12345 | Run |
| 12345 | Sit |
| 12345 | Run |
| 12345 | Sit |
+---------+---------+
顺序为#2和#3的行应合并,#4和#5应合并。我使用“按操作分组”将得到下表所示的答案,但这不是我想要的:
+---------+---------+
| user id | Action |
|---------|---------|
| 12345 | Run |
| 12345 | Sit |
+---------+---------+
如何实现sql(我使用googlebigquery)?
万分感谢!
2条答案
按热度按时间v8wbuo2f1#
下面是bigquery标准sql
如果要应用到问题输出的样本数据
pgvzfuti2#
您可以使用窗口函数:其思想是将每行上的操作与“上一个”操作进行比较,并对值更改的行进行筛选: