[英]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.