LC_SQL_基础_DAY7

文章主要讨论如何在MySQL中通过查询语句统计近30天的活跃用户,强调了使用DISTINCT关键字去除重复用户ID以及GROUPBY子句进行按日期分组的方法。此外,还提到了在统计过程中应用COUNT函数和在DailySales表中计算独特领导者和伙伴的数量。
摘要由CSDN通过智能技术生成

查询近30天活跃用户

在这里插入图片描述

讨论 1

常规统计
先计算日期类型。截至 2019-07-27(包含2019-07-27),这天之后的也要判断
统计符合这段时间区间的用户数。根据每日的id来统计,要去重(单个用户一天浏览多次属1个)

SELECT activity_date as day, count(DISTINCT user_id) as active_users
FROM Activity
WHERE 0 <= DATEDIFF('2019-07-27',activity_date) 
AND DATEDIFF('2019-07-27',activity_date) <30 
GROUP BY activity_date

讨论 2

group by

# Write your MySQL query statement below
select activity_date as day,count(distinct user_id) as active_users
from
    Activity
where
    activity_date between '2019-06-28' and '2019-07-27'
group by
    activity_date;

每天的领导和合伙人

在这里插入图片描述

讨论 1

DISTINCT关键字过滤重复的数据
然后count 统计个数
最后group by

#  group by 有一个原则:
#  group by 后面的列名,只能是select后面列中没有使用过聚合函数的列


SELECT date_id,make_name,
    count(DISTINCT lead_id)as unique_leads,
    count(DISTINCT partner_id)as unique_partners
FROM DailySales
GROUP BY date_id,make_name

group by 的意思为分组汇总
使用了group by 后,要求Select出的结果字段都是可汇总的,否则就会出错
group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面

讨论 2

select
    date_id,
    make_name,
    count(distinct lead_id) as unique_leads,
    count(distinct partner_id) as unique_partners
from dailysales
group by date_id, make_name

求关注者的数量

在这里插入图片描述

讨论 1

group by 分组
count() 统计数量
order by 排序

# Write your MySQL query statement below
select user_id,count(user_id) as followers_count 
from Followers 
group by user_id 
order by user_id

#-----------------优化--------------------

SELECT 
    user_id, COUNT(DISTINCT follower_id) followers_count
FROM
    Followers
GROUP BY
    user_id;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值