[英]mysql return distinct values from one column, group by another column with count
我有一个名为“ 视频 ”的视图,其中包含以下列:
email(varchar)
time(varchar)
page(varchar)
带有给定电子邮件的人员每次访问页面时,该视图都有行。
我想返回针对每个电子邮件地址显示的结果,他们访问至少一页的天数以及无论日期如何都访问了多少个不同页面的计数。
我的问题之一可能是时间存储为varchar。 这是时间格式的示例。
2016-01-25T14:36
使用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
;
您可以按每天的访问次数使用分组
select email, date(time), count(*)
from mytable
group by email, date(time);
和
select email, count(distinct page)
from mytable
group by email;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.