如何根据固定百分比计算不同的日期时间戳和过滤条目?

时间:2018-02-03 17:47:28

标签: php mysql sql

 class LooperThread extends Thread {
      public Handler mHandler;

      public void run() {
      Looper.prepare();

      mHandler = new Handler() {
          public void handleMessage(Message msg) {
              // process incoming messages here
          }
      };

      Looper.loop();
      }
  }

我正在尝试创建一个查询,以查找访问者visitor --- timestamp abc --- 2018-02-03 03:24:26 abc --- 2018-02-03 02:20:20 abc --- 2018-02-01 15:10:26 abc --- 2018-01-31 18:24:26 abc --- 2018-01-30 12:20:20 abc --- 2018-01-26 10:10:26 def --- 2018-02-03 03:24:26 def --- 2018-01-30 12:20:20 def --- 2018-01-26 10:10:26 abc是否忠诚。

我虽然有一个14天的固定时间表。问题是访问者登录的次数。def在这14天的时间内在5个独立日期内进行了访问。

另一方面,abc在3个独特的日子里进行了访问。

我想要的是过滤,让'比如,在这14天的时间内,哪位访问者至少忠诚度为30%。在此示例中,def是,abc不是。

查询问题:

  • 它并没有考虑到不同的(日期(时间戳)和def所有访问,包括每个访客每天多次访问
  • 我不知道如何过滤它们让我们说如上所述30%
sums

1 个答案:

答案 0 :(得分:1)

您正在寻找count(distinct)。要只获得“忠诚”的访问者,您可以使用HAVING条款:

SELECT visitor, 
       COUNT(DISTINCT Date(timestamp)) AS days_last_two_weeks
FROM behaviour
WHERE timestamp >= Curdate() - INTERVAL 14 day
GROUP BY visitor
HAVING days_last_two_weeks >= 0.3 * 14
ORDER BY last_twoweeks DESC;