什么是sql查询,它会告诉我用户abc
访问网站的不同天数(无论页面)以及首次访问和上次访问的日期?
在以下示例中,用户abc
访问了3个不同的日期,首次访问2009-05-16
,最后访问2009-05-18
id - user - page - timestamp
340 - abc - page1 - 2009-05-18 22:51:11
339 - abc - page3 - 2009-05-18 22:40:01
338 - abc - page3 - 2009-05-17 21:20:01
337 - xyz - page2 - 2009-05-18 22:06:00
336 - xyz - page1 - 2009-05-18 22:05:10
335 - abc - page3 - 2009-05-17 20:50:12
334 - abc - page3 - 2009-05-16 12:10:01
谢谢
答案 0 :(得分:1)
尝试以下查询:
Select count(*) as timeVisited, min(timestamp) firstvisit, max(timestamp) last
From yourtablename
Where user='abc'
答案 1 :(得分:0)
时间戳的非常粗略的处理(你可以使用更强大的日期函数),但这里的想法是:
SELECT user,COUNT(*) as "# visits",MIN(LEFT(timestamp,10)) as "Oldest visit",MAX(LEFT(timestamp,10)) as "Most recent visit"
FROM your_table
group by
user, LEFT(timestamp,10)
答案 2 :(得分:0)
所以为了得到这个,首先得到min(时间戳)以便第一次访问 最后(时间戳)获得上次访问 并计数(不同(日期(时间戳)))以获得访问的不同天数
SELECT min(date(timestamp1)) as FirstVisit, max(date(timestamp1)) as LastVisit, count(distinct(date(timestamp1))) as distinctDays from yourtablename
编辑: - 时间戳是mysql中的保留关键字。所以改了它timestamp1