我可以按天分组用户activkty,但我确实需要所有搜索时间超过8小时的用户。
答案 0 :(得分:2)
我猜你的意思是“找到所有在一天内搜索过两次,超过8小时的用户”。我认为这可能有用:
SELECT DISTINCT sr1.UserID, Date(sr1.Search_Date) AS Search_Date
FROM SearchRecord sr1
JOIN SearchRecord sr2
ON sr1.UserID = sr2.UserID
AND Date(sr1.Search_Date) = Date(sr2.Search_Date)
AND sr1.Search_Date > (sr2.Search_Date + INTERVAL 8 HOURS)
这是假设我正确理解了您的问题并且我的MySQL语法是正确的(这些天我主要使用SQL Server)。
答案 1 :(得分:0)
你需要这样做一次吗?如在,它扔掉了吗?如果是这样的话,做一些缓慢运行但速度快的事情可能是你最好的选择。
我愿意打赌一些sql-guru可以在一个查询中找到一种方法来实现你想要的东西。
如果没有发生这种情况,我会把一个(php / java / python /汇编程序/挑选你的毒药)脚本/应用程序放在一起,只读取数据,过滤它,并吐出你的结果。快速而肮脏,完成工作。如果你发现它需要太长时间,那么就开始寻找加快脚本速度的方法,或者在一次查询中再回过头来。
SQL很适合很多事情,但有时候最好只用软件来做。 : - )