查询每天出现的所有值

时间:2014-10-27 15:06:11

标签: mysql

我有一个日志表,其日期附加到日志项本身。该日志会跟踪发布商用于展示广告的广告空间中的展示次数。看起来(大大简化)像这样:

id | date | adspace_id | impressions

当广告空间一天没有展示次数时,它有时会提供0.其他时间,它根本就不会被记录。其他时候,adspace_id将在同一天被记录多次。 (我不知道为什么。)我试图在30天内拉出每天都有价值的adspace_ids,但无法弄清楚如何做到这一点。我试过了

SELECT adspace_id FROM logstbl WHERE (`date` > "2014-02-01" AND `date` < "2014-03-02") AND impressions != 0

但是它会在这些日期之间留下任何记录空间,而不是在所有上记录日志的空间。

我想我错过了什么,任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

您可以计算这些日期之间的天数(例如,30天),并查找分配给它们的许多日期的ID(此SQL几乎肯定会被重构,但只是一个想法) :

SELECT adspace_id from
(
    SELECT adspace_id, count(date) as cnt from
    (
        SELECT distinct adspace_id, date 
        FROM logstbl WHERE (`date` > "2014-02-01" AND `date` < "2014-03-02") 
        AND impressions != 0
    ) a group by adspace_id
) b where b.cnt > 30