我想在MySQL表上执行一个非常复杂的查询。目前,此MySQL表存储用户信息,如 IP,国家/地区, event_id 以及许多其他统计信息,例如date_start date_end用于特定事件。
特定的event_id以date_start 开头,当用户结束时正在将time()值写入date_end列。
我想要一个查询以某种方式查找所有suspicous
个用户(ids return
)。以下是定义可疑用户的规则。
数据库中有来自多个国家/地区的user_id
行。 在这种情况下country column
具有不同的值
数据库 对于特定的event_id 有很多行 SUM
OF(date_end-date_start)例如+50%
的值比其他事件的(date-end-date_start)的所有其他 SUM更新。使用简单的单词,查询应该报告已经花费的user_ids在某些事件上花了很多时间,而他们并没有在所有其他事件上花费太多时间。 %百分比值应该是可配置的。
我知道这听起来很疯狂,但是我试图这样做而且我失败了。我是用PHP做的,但速度慢,我确信可以通过查询来完成。
希望你理解我
谢谢
答案 0 :(得分:0)
这个问题太大了。了解如何查找来自多个国家/地区的用户。然后弄清楚如何获取事件持续时间的统计数据。然后弄清楚如何识别异常值。然后,最后,尝试合并所有三种解决方案。
通常,使用SQL将数据过滤到可管理的大小,然后使用PHP进行任何进一步处理。