不同的数据库

我在试着收集昨天在我的社区服务中心的不同访问次数,然后统计一下。

SELECT
DISTINCT `user_id` as user,
`site_id` as site,
`ts` as time
FROM
`cp_visits`
WHERE
ts >= DATE_SUB(NOW(), INTERVAL 1 DAY)

由于某种原因,这是拉同一个站点 id 的多个结果... ... 我如何只拉和计数不同的 site _ id cp 登录?

334586 次浏览

您需要使用分组从句。

SELECT  site_id, MAX(ts) as TIME, count(*) group by site_id
 Select
Count(Distinct user_id) As countUsers
, Count(site_id) As countVisits
, site_id As site
From cp_visits
Where ts >= DATE_SUB(NOW(), INTERVAL 1 DAY)
Group By site_id

总的来说

SELECT
COUNT(DISTINCT `site_id`) as distinct_sites
FROM `cp_visits`
WHERE ts >= DATE_SUB(NOW(), INTERVAL 1 DAY)

或每个网站

  SELECT
`site_id` as site,
COUNT(DISTINCT `user_id`) as distinct_users_per_site
FROM `cp_visits`
WHERE ts >= DATE_SUB(NOW(), INTERVAL 1 DAY)
GROUP BY `site_id`

在结果中包含 time列是没有意义的——因为您是在聚合行,所以显示一个特定的 time是不相关的,除非它是您想要的 minmax