[英]Group by week day
拥有这部分大桌子T;
+---------------+------------+
| session_id | visit_time |
+---------------+------------+
| 4f89cebc109f9 | 1334431476 |
| 4f89cf283d21c | 1334431528 |
| 4f89cf283d21c | 1334431534 |
| 4f89cf3b350a6 | 1334431547 |
| 4f89cf42ab640 | 1334431554 |
+---------------+------------+
我想查找工作日的session_id数量。 Session_id不是主键。 所以我尝试了:
select count(distinct(session_id)) from T group by weekday(from_unixtime(time))
但这是行不通的,因为如果同一个session_id
在两个不同的visit_time
有visit_time
,那么它将它们计为1
,尽管当同一个session_id
在相同的星期天具有visit_time
时它正确地计数为1。
预期的事情是:我想知道有多少session-id的访问日为sun,mon等。如果session_id在两个不同的星期日访问了,那么它们将被计数两次,但是如果在同一周日,则只有一个计数。 那么如何在Mysql中做到呢?
使用WEEK
而不是WEEKDAY
SELECT WEEK(FROM_UNIXTIME(time)) WeekNo,
DATE_FORMAT(FROM_UNIXTIME(time),'%a') WeekName,
COUNT(DISTINCT(session_id))
FROM T
GROUP BY WEEK(FROM_UNIXTIME(time)),
DATE_FORMAT(FROM_UNIXTIME(time),'%a')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.