首页 > 数据库 >spark sql实现“平均月活”和“平均周活”及相关函数

spark sql实现“平均月活”和“平均周活”及相关函数

时间:2024-05-29 21:59:21浏览次数:22  
标签:月活 周活 format time month current user sql date

一、平均月活:
SELECT date_format(time, 'yyyy-MM') AS current_month,
COUNT(DISTINCT user_id) AS month_active_user_num
FROM table
WHERE time >= trunc(now(), 'YEAR')
GROUP BY date_format(time, 'yyyy-MM');

二、平均周活:
WITH week_user_cnt
(
SELECT date_format(time, 'yyyy') AS current_year,
date_format(date_trunc('WEEK', time), 'MM') AS current_month,
weekofyear(time) AS current_week,
COUNT(DISTINCT user_id) AS active_users
FROM table
GROUP BY date_format(time, 'yyyy'),
date_format(date_trunc('WEEK', time), 'MM'),
weekofyear(time)
)
SELECT CONCAT(current_year, '-', current_month) AS current_month,
CAST(AVG(active_users) AS INT) AS week_active_user_num
FROM week_user_cnt
GROUP BY CONCAT(current_year, '-', current_month);

三、相关函数:
1、字符串类型数据转换为timestamp类型数据:
to_timestamp('2023-01-01')
2、timestamp类型数据转换为字符串类型数据:
date_format(start_date, 'yyyy-MM')
3、将时间差转换为以天为单位:
(unix_timestamp(end_time) - unix_timestamp(start_time))/3600/24

标签:月活,周活,format,time,month,current,user,sql,date
From: https://www.cnblogs.com/chenhongyi/p/18221145

相关文章

  • 记录kali搭建Apache+MySQL+PHP
    一.打开相应的服务kali中已经预先安装好了Apache2,MySQL和PHP,所以我们在使用的时候只需要打开相应的服务即可。1.打开Apache2服务kali预先安装的Apache在etc文件里,我们ls显示文件后发现了apache2文件夹,进入到该文件夹后启动服务,命令如下:/etc/init.d/apache2start检测服务......
  • sql server 死锁问题
    遇到死锁问题,可以通过SQLServer的监听功能来找出是哪些语句导致的,然后再做进一步分析。(时间原因这里先做个简答笔录,后续再找时间细化)下面的文章可以帮助大家分析死锁问题:深入浅出SQLServer中的死锁-aparche-博客园(cnblogs.com)死锁指南-SQLSer......
  • vs上运行mysql
    前置注意vs中要引用mysql的类库。MySqlCommand  MySqlCommand类代表了要在MySQL数据库上执行的SQL语句或存储过程。它提供了许多方法来执行不同类型的SQL命令,比如查询(SELECT)、插入(INSERT)、更新(UPDATE)和删除(DELETE)。你可以创建一个MySqlCommand对象,并将要执行的SQL语句传递......
  • [SQL DRIVEN] GetExistingLocalJoinPath
    ThefollowingsqlstatementswilltriggercallingfunctionGetExistingLocalJoinPath.setupCREATEEXTENSIONpostgres_fdw;CREATESERVERforeign_serverFOREIGNDATAWRAPPERpostgres_fdwOPTIONS(host'127.0.0.1',dbname'postgres',por......
  • Django 里如何使用 sqlite (操作步骤)
    下面是在VSCode里进行操作1.安装SQLite的Extension2.在models.py里做修改文件修改如下fromdjango.dbimportmodels#Createyourmodelshere.#类似这样创建一个classclassUserInfo(models.Model):username=models.CharField(verbose_name="......
  • 升鲜宝供应链管理系统重构版发布(技术点:Java8、mysql8.0 uniapp、vue、android、web 框
    升鲜宝供应链管理系统重构版发布(技术点:Java8、mysql8.0uniapp、vue、android、web框架:Vue3+SpringBoot3),界面功能(三) 主要功能要点:     权限管理(组织机构、用户管理、角色管理、岗位管理)     系统设置(菜单管理、参数管理、数据字典、定时任务、文件管......
  • MySQL中的并发控制
    效率工具推荐一个程序员的常用工具网站,效率加倍嘎嘎好用:程序员常用工具云服务器云服务器限时免费领:轻量服务器2核4G腾讯云:2核2G4M云服务器新老同享99元/年,续费同价阿里云:2核2G3M的ECS服务器只需99元/年,续费同价在现代应用程序中,数据库并发访问是一个常见的场景。多个......
  • MySQL中SQL表设计的注意事项
    效率工具推荐一个程序员的常用工具网站,效率加倍嘎嘎好用:程序员常用工具云服务器云服务器限时免费领:轻量服务器2核4G腾讯云:2核2G4M云服务器新老同享99元/年,续费同价阿里云:2核2G3M的ECS服务器只需99元/年,续费同价设计良好的数据库表结构是构建高效、可维护的应用程序的......
  • oracle的排序函数以及mysql使用变量实现排序
    oracle的排序函数rank()函数:跳跃排序,如果两个第一,则后边是第3dense_rank()函数:连续排序,,再如两个第一,则后边是第2row_number()函数:连续排序,没有并列的情况createtableccx_test( coursevarchar(10), scoreint);insertintoccx_testvalues(1,70);insertintoccx_......
  • mysql 函数实现父子查询
    DELIMITER//CREATEFUNCTIONget_all_father(rootIdINT)RETURNSvarchar(1000)DETERMINISTICBEGINDECLAREsTempVARCHAR(1000);DECLAREsTempParVARCHAR(1000);SETsTemp='';SETsTempPar=rootId;#循环递归WHILEsTemp......