我有一个名为' 视频'使用以下列:
email(varchar)
time(varchar)
page(varchar)
每次有给定电子邮件的人访问某个页面时,该视图都会有行。
我想返回针对每个电子邮件地址显示的结果,他们访问过至少一个页面的天数,以及他们访问过多少个不同页面的计数,而不考虑日期。
我的一个问题可能是时间存储为varchar。以下是时间格式的示例。
2016-01-25T14:36
答案 0 :(得分:2)
使用STR_TO_DATE
提取和解释time
字符串的日期部分。将COUNT
与DISTINCT
关键字一起使用,只计算不同的日期和不同的页面。
SELECT email
, COUNT(DISTINCT STR_TO_DATE(time, '%Y-%m-%d')) AS visit_days
, COUNT(DISTINCT page) AS visit_pages
FROM videos
GROUP BY email
;
答案 1 :(得分:0)
您可以按天使用组来计算访问次数
select email, date(time), count(*)
from mytable
group by email, date(time);
和
select email, count(distinct page)
from mytable
group by email;