【发布时间】: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