【问题标题】:MySQL: SQL JOIN, COUNT, and WHERE statementsMySQL:SQL JOIN、COUNT 和 WHERE 语句
【发布时间】:2018-05-10 16:07:58
【问题描述】:

目前,我正在尝试加入两个表(名为 pageviews 和 sessions)并使用 COUNT 和 WHERE 条件来识别前两周使用该网站(在特定页面上)的新用户。作为参考,这两个表可以追溯到前 12 个月。为此,我编写了以下查询

SELECT pageviews.pageType
     , sessions.sessionDate
     , sessions.deviceType
     , COUNT(visitorId)
FROM sessions 
INNER JOIN pageviews 
   on sessions.sessionId = pageviews.sessionId
WHERE pageviews.pageType = 'Page1' 
  AND sessionDate BETWEEN '2018-04-26' AND '2018-05-08'
   =! visitorId BETWEEN '2017-05-10' AND '2018-04-27' 
ORDER BY sessionsDate;

我决定按会话 ID 连接这两个表,这样我就可以将 COUNT 专用于 visitorId。有没有更有效的方法来写这个?

【问题讨论】:

  • 你打错字是什么意思?和'2018-05-08'=!访客身份?
  • WHERE 子句的格式完全错误。在我们回答任何问题之前,您需要更正它。
  • 您使用的是哪个版本的 SQL Server?识别哪个 T-SQL 是
  • 嗯...不带 group by 的聚合似乎也有点不对劲...也许是一个分析函数...
  • @GordonLinoff MySQL 没有 GROUP BY =( 这是一个常见的不匹配。

标签: mysql sql count inner-join where


【解决方案1】:

您应该按 pageviews.pageType 分组并计算访问次数,您将获得每页的结果

【讨论】:

    猜你喜欢
    • 2017-02-08
    • 2015-09-28
    • 1970-01-01
    • 2017-09-09
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    相关资源
    最近更新 更多