2013-04-28 74 views
0

你好我的代码有问题。与MySQL我想要获得基于最近3个月内购买表“ID”列的计数..如何计算mysql中最近三个月的按时间列分组?

所以想指望有多少购买在用mysql最近3个月。如果有帮助,我有一个使用时间戳的时间栏。

我的下面的代码不起作用..

任何帮助将是伟大的。提前致谢。

$query = "SELECT COUNT(id) 
      FROM purchases 
      where username='$username' 
      GROUP BY time"; 
+0

你为什么要用这个组?它应该在WHERE时间> TIMESTAMPADD(MOTNH,-3,NOW())。您可以使用GROUP BY DATE_FORMAT(“%Y-%M”,时间)来获取前几个月的列表以及它们puchases的数量。 – Simon 2013-04-28 13:15:51

回答

0

你可以这样做:

$query = "SELECT COUNT(id) 
      FROM purchases 
      WHERE username='$username' 
      AND timecol BETWEEN (NOW() - INTERVAL 3 MONTH) AND NOW()"; 
+0

谢谢。这有助于.. – ASH 2013-04-28 13:26:37

0

如果你想知道为什么你的查询失败,这可能是因为time是一个MySQL的关键字,应该逃脱了,就像这样:

$query = "SELECT COUNT(id) 
      FROM purchases 
      WHERE username = '$username' 
      GROUP BY `time`"; 

至于如何只能选择购买记录在过去的三个月里,看到其他的答案。