首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Oracle SQL统计各单位及其子级单位用户总数

Oracle SQL统计各单位及其子级单位用户总数 业务场景:最近帮同事写一个sql,业务是统计各个单位及其子单位用户总数,听起来是挺容易的,所以拿起键盘就是敲: select sum(t.ucount..., uinfo.unit_name) t; 不过这个只能传个顶级单位编码,一个一个查,这样肯定很耗时,所以还是自己想太简单了,摸索了好一阵子,想到方法: ①、新建一个函数,传一个顶级单位编码,通过函数统计本单位及其子单位的用户总数...t; RETURN v_Value; END; 测试函数是否建立成功: select FH_UNIT_USER_COUNT('15803') from dual; ②、调用函数,传顶级单位编码进行统计...select FH_UNIT_USER_COUNT(uinfo.unit_code) as 用户总数, uinfo.unit_code as 单位编码, uinfo.unit_name...as 厅单位名称 from t_unit_info uinfo group by uinfo.unit_code, uinfo.unit_name order by 用户总数 desc nulls

1.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

linux下统计文件数目+linux统计指定时间的文件总数

如果ls -lR|grep "^-"|wc-l则可以连子目录下的文件一起统计。...grep ^- 这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d  wc -l 统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件...需要说明的是第二种方法会比第一种方法快很多,尤其是也统计子目录时。...linux统计指定时间的文件总数 由于工作原因,需要统计某目录下atime时间大于365天的文件,google搜索之后,发现find命令异常强大。...-atime +365 网上有答案; -exec:表示执行后面的命令; ls -l:略过; {} \; :表示前面find...找到的结果;  grep "^-": 过滤,只保留文件; wc -l: 统计数目

6.3K40

按分类统计商品总数的性能优化思考

如上图,在很多购物类商城系统中经常能看到类似的产品分类列表,今天市场部的同志们要求每个分类后要显示该类的产品总数,并且没有产品的分类不用显示。...公司这个项目中的分类有近1000种(并且是无限级分类的树型结构),如果按常规统计方法,每个分类ID都去count一下(同时考虑到每个分类的下级子分类产品数),这样的处理效率肯定很低的。...想了个办法从二个层面优化: 1.数据库层面 创建一个临时表,用游标把产品总数分类事先统计好,一次性在数据库中完成,避免ASPX页面中的多次查询请求。...============================= -- Author: -- Create date: -- Description: <分类统计产品总数

1K100

现有1亿个用户10天的签到情况,你能统计出这10天连续签到的用户总数吗?

那么,具体该怎么用 Bitmap 进行签到统计呢? 假设我们要统计 ID 3000 的用户在 2022 年 10 月份的签到情况,就可以按照下面的步骤进行操作。...GETBIT uid:sign:3000:202210 0 第三步,统计用户在 10 月份的签到次数(bit 数组中所有“1”的个数)。...BITOP命令示意图 回到我们的标题:如果记录了 1 亿个用户 10 天的签到情况,你有办法统计出这 10 天连续签到的用户总数吗?...在统计 1 亿个用户连续 10 天的签到情况时,你可以把每天的日期作为 key,每个 key 对应一个 1 亿位的 Bitmap,每一个 bit 对应一个用户当天的签到情况。...最后,我们可以用 BITCOUNT 统计下 Bitmap 中的 1 的个数,这就是连续签到 10 天的用户总数了。 现在,我们可以计算一下记录了 10 天签到情况后的内存开销。

56010

hive sql(三)—— 求所有用户和活跃用户总数及平均年龄

需求 求所有用户和活跃用户总数及平均年龄 建表语句 create table user_age( dt string, user_id string, age int ) row..._c3 0 0.0 2 19.00 3 27.0 0 0.00 分析 1、这里有两次去重,第一次去重是一个用户一天内多次访问,只算一次,第二次一个用户有多个连续登录,那么实际情况中,第一次去重是常规操作...,第二次去重根据公司实际要求来做 2、活跃用户是指连续两天及以上,所以count(*)>=2 3、date_sub(dt,rank) flag这个是核心逻辑,语言不好描述,举例说明:(03-22,1)(...03-27,2),(03-28,3),(03-29,4),通过日期相减后得到的值都是结果是03-21,03-25,只有03-25的结果是日期是连续的 4、这里需要计算所有用户的平均年龄和活跃用户的平均年龄...,维度不同,在不同的列展示,而union all需要保证列数相同,所以这里需要补默认值 扩展 min(age)作用: 1、满足分组时把age从子查询带出 2、用户每天登录,年龄可能会随着日期变化,所以潜在的计算规则中是每次根据用户和日期分组时取最小年龄

98420

每日一题(统计每个月兔子的总数,数列的和)

统计每个月兔子的总数_牛客题霸_牛客网 (nowcoder.com) 这个问题实际上是著名的“斐波那契数列”(Fibonacci sequence)的一个应用。...所以,第n个月的兔子总数就是斐波那契数列的第n项。 在下面这段代码中,fibonacci 函数计算斐波那契数列的第n项。...在 main 函数中,我们读取用户输入的月份n,并调用 fibonacci 函数来计算第n个月的兔子总数。注意,由于兔子从第3个月开始生小兔子,所以实际上我们计算的是斐波那契数列的第n-2项。...// 由于兔子从第3个月开始生小兔子,所以计算斐波那契数列的第n-2项 int rabbitCount = fibonacci(n - 2); printf("第%d个月的兔子总数

12610

使用Redis统计活跃用户

统计活跃用户这个案例非常经典,也是我当时学习redis时,接触到的第一个让我眼睛一亮的使用方式 场景 用户登录后需要记录,以便以后进行登录统计 统计需求主要有: (1)今天的登录用户数 (2)...3天内都登录过的用户 (3)7天内登录过的用户 常规解决方案 如果不用redis,通常做法是在用户登录时记录日志,或者在数据库中添加一条登录记录 然后按照需求进行定时统计 redis解决方案...ret key1 key2 就是对 key1 key2 各位进行 or 运算后赋值给 ret,结果为 0111 (3)bit值为1的数量 > bitcount key 通过bit操作就可以实现用户统计的需求了...100 1 (2)统计今天登录的用户数 > bitcount userlogin:20160118 (3)统计3天内都登录过的用户 “都登录过”是要取得bit值都为1的,通过 and 计算获取...> bitop or ret userlogin:20160116 userlogin:20160117 userlogin:20160118 (4)统计7天内登录过的用户 “登录过”表示bit

1.5K60
领券