我有一个多个用户都有更新访问权限的表。表Point_of_sale
(Brand
,Sub_brand
,value
,start_date
,end_date
)
如果user 1将value
更新为$10,user 2将value
更新为$20,而没有在第一条记录上放置end_date,则会产生差异。我需要找出表中的所有此类值。根据我运行此查询的时间,它应该获得所有活动记录的结果,这意味着在下面的示例中,如果我在2021年6月运行查询,start_date适用于2条记录,因为它> 2021年1月1日和2021年5月5日。
如何使用partition by /order by
| 品牌|子品牌|值|开始日期|结束日期(_D)|
| --|--|--|--|--|
| 银器|勺子| 10 |2020年1月1日|2020年12月20日|
| 银器|勺子| 20 |2021年1月1日||
| 银器|勺子| 30 |2021年5月5日||
查询的预期结果
| 品牌|子品牌|值|开始日期|结束日期(_D)|
| --|--|--|--|--|
| 银器|勺子| 20 |2021年1月1日||
| 银器|勺子| 30 |2021年5月5日||
1条答案
按热度按时间zwghvu4y1#
您似乎希望计算每个品牌/子品牌的
NULL
值,然后在超过两个时返回NULL
值:字符串
其中,对于样本数据:
型
产出:
| 品牌|品牌介绍|值|开始日期|结束日期|NUM_NULL|
| --|--|--|--|--|--|
| 银器|勺子| 30 |2001年5月5日| * 空 *| 2 |
| 银器|勺子| 20 |2021年1月1日| * 空 *| 2 |
如果你想要今天之前的行,那么用途:
型
fiddle