当前位置: 首页 > news >正文

微型营销网站制作用媒体做响应式网站可以吗

微型营销网站制作,用媒体做响应式网站可以吗,百度添加网站,网站的缺点有哪些为了找到连续登录超过 3 天的用户,我们可以使用 SQL 窗口函数和递归查询来实现。假设有一个 user_logins 表,包含以下字段: user_id(用户ID)login_date(登录日期) 假设 login_date 是 DATE 类…

为了找到连续登录超过 3 天的用户,我们可以使用 SQL 窗口函数和递归查询来实现。假设有一个 user_logins 表,包含以下字段:

  • user_id(用户ID)
  • login_date(登录日期)

假设 login_date 是 DATE 类型,下面是实现该需求的 SQL 查询:

1. 数据库表结构与样本数据

CREATE TABLE user_logins (user_id INT,login_date DATE
);INSERT INTO user_logins (user_id, login_date) VALUES
(1, '2023-07-01'), (1, '2023-07-02'), (1, '2023-07-03'),(1, '2023-07-05'),
(2, '2023-07-01'), (2, '2023-07-03'), (2, '2023-07-04'),(2, '2023-07-05');

2. SQL 查询

WITH login_streaks AS (SELECTuser_id,login_date,login_date - INTERVAL ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY login_date) DAY AS streak_idFROMuser_logins
),
streak_groups AS (SELECTuser_id,COUNT(*) AS streak_lengthFROMlogin_streaksGROUP BYuser_id, streak_id
)
SELECT DISTINCTuser_id
FROMstreak_groups
WHEREstreak_length > 3;

解析:

这段SQL代码通过使用公用表表达式(CTE)计算用户的连续登录天数,并筛选出连续登录天数大于等于3天的用户。我们将逐步解析这段SQL代码的每个部分。

1. WITH子句和CTE

SQL代码使用了两个CTE:login_streaks 和 streak_groups

CTE 1:login_streaks
WITH login_streaks AS (SELECTuser_id,login_date,login_date - INTERVAL ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY login_date) DAY AS streak_idFROMuser_logins
),

目的:计算每个用户的登录日期,并为每个用户生成一个“连续登录标识符”(streak_id)。

关键点

  • ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY login_date):为每个用户按login_date排序的每一行生成一个唯一的行号。
  • login_date - INTERVAL ROW_NUMBER() DAY:通过减去行号的天数来生成一个“连续登录标识符”。如果用户在连续的日期登录,减去行号后得到的结果将是相同的。

例如:

  • 假设用户在 2024-07-01 和 2024-07-02 登录,那么:
    • 2024-07-01 - INTERVAL 1 DAY = 2024-06-30
    • 2024-07-02 - INTERVAL 2 DAY = 2024-06-30
    • 这两个记录的“连续登录标识符”将是相同的 2024-06-30,表明它们是连续登录的。
CTE 2:streak_groups
streak_groups AS (SELECTuser_id,COUNT(*) AS streak_lengthFROMlogin_streaksGROUP BYuser_id, streak_id
)

目的:计算每个用户的每个“连续登录标识符”对应的连续登录天数。

关键点

  • GROUP BY user_id, streak_id:按用户和“连续登录标识符”分组。
  • COUNT(*) AS streak_length:计算每个分组的记录数量,即连续登录的天数。

最终查询

SELECTuser_id
FROMstreak_groups
WHEREstreak_length >= 3;

目的:筛选出连续登录天数大于等于3天的用户。

关键点

  • WHERE streak_length >= 3:只选择连续登录天数(streak_length)大于等于3的用户。

完整解析

  1. login_streaks CTE

    • 为每个用户生成一个包含user_idlogin_datestreak_id的临时表。
    • streak_id 标识用户的连续登录,具有相同streak_id的记录表示用户的连续登录序列。
  2. streak_groups CTE

    • 计算每个用户的每个streak_id对应的连续登录天数。
    • 结果表包含user_idstreak_length
  3. 最终查询

    • streak_groups中筛选出streak_length大于等于3的用户。

示例数据和结果

假设user_logins表包含以下数据:

user_idlogin_date
12024-07-01
12024-07-02
12024-07-03
12024-07-05
22024-07-01
22024-07-03
22024-07-04
2

2024-07-05

Step 1login_streaks CTE结果:

user_idlogin_datestreak_id
12024-07-012024-06-30
12024-07-022024-06-30
12024-07-032024-06-30
12024-07-052024-07-02
22024-07-012024-06-30
22024-07-032024-07-01
22024-07-042024-07-01
22024-07-052024-07-01

Step 2streak_groups CTE结果:

user_idstreak_length
13
11
21
23

Step 3: 最终查询结果:

user_id
1
2

总结

这段SQL代码通过使用两个CTE,先计算每个用户的连续登录天数,然后筛选出连续登录天数大于等于3天的用户,非常适合于分析用户的活跃度和粘性。

http://www.yayakq.cn/news/248277/

相关文章:

  • 五华网站建设 优帮云建筑工程网招聘信息
  • 网站搭建策略与方法有哪些方面太原不错的互联网公司
  • 门源县电子商务网站建设公司常熟建设设银行网站
  • 如何写网站文案辽宁省住房和城乡建设厅网站首页
  • 廊坊网站制作套餐多少钱翻译
  • 免费空间域名可以做淘宝客网站推广吗IT男为女朋友做的求婚网站
  • 网站服务提供商如何理解网络营销环境
  • 创新的盐城网站建设wordpress 文章搜集
  • 南岗红旗大街网站建设郑州做品牌网站的公司
  • 网站开发流程视频外包员工强制辞退找谁赔偿
  • 网站设计宽屏尺寸公司建设网站价格
  • 做响应式网站设计师需要做什么橙色的网站模板
  • 阿里网站建设App开发做冷冻食品的网站
  • 网站如何做微信支付宝支付宝支付宝接口紧急访问升级狼人通知
  • 我需要做网站物业管理系统app
  • 那个网站可以做双色球号码对比的wordpress 文章排序插件
  • 北京公司网站建设价格网站建设公司需要哪些
  • 淮安企业网站广西seo
  • 怎么做网站竞价企业咨询管理服务
  • wordpress 网站标题嵌入式开发要学什么
  • 广州网站推广建设行业门户网站模板
  • 没有营业执照可以建设网站网站空间格式asp
  • 如何查看网站是否被百度收录在浏览器播放视频
  • 网站关键词怎么优化排名网站建设名牌
  • 江苏泰兴网站建设如何开网店无货源不需要投资
  • 正规网站建设价格网站建设公司的方案
  • 关于网站备案及管理的授权书什么是网络营销名词解释
  • 清风网站建设台州seo排名扣费
  • 网站建设销售兼职合同搜索引擎优化seo的英文全称是
  • 网站建设仟金手指专业12建设工程施工合同的特点