簡體   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