2016-08-18 70 views
0

我有一個名爲「視頻」有以下的列視圖:MySQL的返回不同的值

email(varchar) 
time(varchar) 
page(varchar) 

視圖有行的,每次有一個人給電子郵件訪問了一個頁面

我想返回每個電子郵件地址顯示的結果,他們訪問至少一個頁面的天數,以及他們訪問了多少個不同日期的頁面。

我的一個問題可能是時間存儲爲varchar。下面是格式的時間在一個例子

2016-01-25T14:36

回答

0

您可以通過天

select email, date(time), count(*) 
from mytable 
group by email, date(time); 

來回訪問的次數使用一組
select email, count(distinct page) 
from mytable 
group by email; 
1

使用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 
; 
+0

完美的作品,謝謝!我不確定如何在單個查詢中執行兩個單獨的計數 – dmohr