我有一个关于构建MySQL查询的问题。我有一个包含值的列,另一列包含时间戳。我想要做的是从一个特定的时期到各个时间点获得一个字段的不同(唯一)值的数量,以便我可以绘制随时间变化的唯一值的数量。例如,我想查询结果如下所示:
Date
,COUNT(DISTINCT col1
)
2011-02-01,10
2011-02-02,16
2011-02-03 ,24
等随着时间的推移MySQL不同(唯一)值
请注意,这些值是开始相同时间点的不同值的数量。目前为了实现这一点,我在PHP中使用循环来为每个日期迭代单个查询,并且由于我有一个大型数据库,因此它需要永久使用。为了给出更好的图片,我想替换的低效代码如下所示:
for($i=0;$i<count($dates),$i++){
$qry = "SELECT COUNT (DISTINCT `col1`) FROM `db`.`table` WHERE `Date` BETWEEN '".$EPOCH."' AND '".$dates[$i]."';";
}
任何帮助,将不胜感激。
感谢
这是老了,但留给后人,这个答案应该工作: http://stackoverflow.com/questions/10995473/cumulative-monthly-totals-and-postgresql – kimbo305 2013-06-05 04:34:36