gpt4 book ai didi

mysql - 确定表中某个项目可以多次出现的日期范围的新的唯一条目

转载 作者:行者123 更新时间:2023-11-30 00:37:35 26 4
gpt4 key购买 nike

我有一个 MySQL 数据库(InnoDB 引擎),随着时间的推移,它会跟踪用户对特定项目的访问:

表格格式:

(pk) item_id: bigint
(pk) date: date
user_id: bigint

同一用户的访问可以在此表中多次出现,并且该表可以很容易地包含数亿行(每个项目数千行)。

由于表是项目和日期聚集的,因此查询图表的日期范围非常快,但我还想确定哪些用户在日期范围内首次出现

我怎样才能有效地做到这一点?

示例数据:

item_id | date       | user_id
---------------------------------
1 | 2000-01-01 | 2
1 | 2000-01-02 | 1
1 | 2000-01-03 | 3
1 | 2000-01-04 | 4
1 | 2000-01-05 | 1
1 | 2000-01-06 | 3

应返回选择自 2000-01-03 以来针对项目 1 的新用户:

3, 4

最佳答案

假设用户是否出现在时间范围之外并不重要,我将使用以下查询:

select
user_id,
count(user_id) as visit_count
from
cn_order where date between "$start_timerange" and "$end_timerange"
group by
user_id having(visit_count) < 2;

如果 item 也很重要,请在过滤子句中添加“and item_id = '$item_id'”

关于mysql - 确定表中某个项目可以多次出现的日期范围的新的唯一条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22029006/

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