gpt4 book ai didi

mysql - 检查用户是否在多行中为 "active"- MySQL

转载 作者:行者123 更新时间:2023-11-29 19:32:06 25 4
gpt4 key购买 nike

在以下示例中,我将如何根据用户活跃的区域创建 group_ids?

group_id   rep_id   area   datebegin   dateend
1 1000 A 1/1/15 1/1/16
1 1000 B 1/1/15 1/1/16
2 1000 C 1/2/16 12/31/99

在表中,您可以看到代表 1000 在 1/15 到 1/16 之间在 A 和 B 中均处于事件状态。我该如何将 group_id 字段编码为按 datebegin 和 dateend 分组?

感谢您的帮助。

最佳答案

您可以使用变量来枚举具有相同 rep_id、datebegin、dateend 值的记录组:

SELECT rep_id, datebegin, dateend,
@rn := IF(@rep_id <> rep_id,
IF(@rep_id := rep_id, 1, 1),
@rn + 1) AS rn
FROM (
SELECT rep_id, datebegin, dateend
FROM mytable
GROUP BY rep_id, datebegin, dateend) AS t
CROSS JOIN (SELECT @rep_id := 0, @rn := 0) AS v
ORDER BY rep_id, datebegin

输出:

rep_id, datebegin,  dateend,    rn
-----------------------------------
1000, 2015-01-01, 2016-01-01, 1
1000, 2016-02-01, 2099-12-03, 2

您可以使用上述查询作为派生表并连接回原始表。 rn 字段是您要查找的 group_id 字段。

关于mysql - 检查用户是否在多行中为 "active"- MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41729753/

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