【问题标题】:sql query to find event views by time periodsql查询按时间段查找事件视图
【发布时间】:2014-02-26 19:08:25
【问题描述】:

我有以下查询来返回用户创建的事件列表和事件总点击次数

SELECT view_id, user_id, event_id, date_viewed, COUNT( event_id ) AS views
FROM `tbl_event_views`
WHERE user_id =1
GROUP BY event_id
LIMIT 0 , 30

这很好,但我想要实现的是基于列表创建日期到当前日期的天、周、月、年的查看次数。

有人能指点我正确的方向吗?

真的不知道从哪里开始。

非常感谢 卢克

【问题讨论】:

    标签: php sql database


    【解决方案1】:

    您需要为视图的创建日期添加一列。 sql 有一个时间戳,但除非您将其添加到数据库中,否则在创建项目时没有什么可记住的。添加该列并将时间戳放入其中,然后您只需使用 DateCreated IN (StartDate, EndDate) 或类似内容查看有多少视图落入您的日期范围内

    【讨论】:

    • 嗨,我已经修改了我的原始查询,因为我已经删除了不需要的额外位,我的 tbl_event_views 中有一个 date_start 字段,它是一个时间戳,但我不明白该怎么做得到正确的日期范围?假设我的列表是在 1 月 3 日发布的,到目前为止,我如何获得每 7 天的日期范围?谢谢!
    • 您还没有说您使用的是哪种风格的 sql,但如果您使用的是 MySQL 或 SQLServer,至少有一个 DateDiff 函数,您可以在其中提供当前日期和 date_start 的日期,然后周作为一个论据,以找出它已经过了多少周。 technet.microsoft.com/en-us/library/ms189794.aspx 那是 SQLServer 的文档。我可能会按天在每个视图上使用 datediff 并将第 1-7 天的所有内容推入一个数组或列表,然后将 8-14 推入第二个数组或列表,依此类推,如果您想按周找到它
    • 嗨,对不起,它的 mysql,我想给用户一个日期选择器,这样他们就可以选择自己的范围,然后我可以使用函数之间的函数或函数中创建的日期,只返回视图计数对于他们选择的范围。
    • Dateiff 受 mysql 支持并且应该仍然适合您,您只需输入用户选择的日期并将其与 date_starts 进行比较
    猜你喜欢
    • 1970-01-01
    • 2012-11-25
    • 2011-03-30
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多