gpt4 book ai didi

mysql - 如何检测MySQL表窗口中是否包含特定值

转载 作者:行者123 更新时间:2023-11-29 02:16:31 25 4
gpt4 key购买 nike

我的数据结构如下:

id      property_id     status      tran_id      as_of
1 1 sold 1111 2015-04-01
2 1 listed 1111 2015-01-05
3 1 pending 1111 2015-01-02

7 2 listed 2211 2014-09-01
8 2 delisted 2211 2014-06-01
9 2 listed 2211 2014-04-01
10 2 delisted 2211 2014-01-01
11 2 sold 2211 2010-01-01

12 3 sold 6661 2015-08-01
13 3 pending 6661 2015-04-05
14 3 listed 6661 2015-04-01
...

我想要的是检测特定属性(property)是否已售出(即当order by as_of asc已售出 时的最后状态)。因此,对于我的情况,属性(property) 1 和 3 已售出,而 2 未售出。我知道如何使用 MS SQL Server 中的 OVER()PARTITION BY() 来做到这一点,但现在我正在使用 MySQL,而且我完全坚持使用它(我不了解 MySQL 和 MSSQL)。

最佳答案

您可以通过以下方式获取每个属性的最后状态:

select t.*,
(case when status = 'sold' then 1 else 0 end) as is_sold
from t
where t.as_of = (select max(t2.as_of)
from t t2
where t2.property_id = t.property_id
);

如果您有大量数据,那么建议在 t(property_id, date) 上建立索引。

关于mysql - 如何检测MySQL表窗口中是否包含特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38766286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com