繁体   English   中英

mysql从一列返回不同的值,按计数按另一列分组

[英]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字符串的日期部分。 COUNTDISTINCT关键字一起使用,可以仅计算不同的日期和不同的页面。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM