计算用户订购率梧桐数据库和oracle数据库sql分析

embedded/2024/11/14 19:44:26/

一、背景说明

移动运营商平台提供多种类型的产品权益,用户可以通过订购来使用。平台需要定期统计各个产品的用户订购情况,以便了解各个产品的受欢迎程度。这些统计数据将用于优化产品、提升用户体验和制定市场推广策略。

二、表结构说明

梧桐数据库建表语句

用户表

CREATE TABLE users(  useid INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT 'Primary Key',username VARCHAR(255)
) comment '用户表';

注册表

create table Register(contest_id  INT not null ,user_id int not null 
)comment '注册表';

oracle数据库建表语句

用户表

CREATE TABLE users (useid   INT PRIMARY KEY,username VARCHAR2(255)
) COMMENT ON TABLE users IS '用户表';

注册表

CREATE TABLE Register (contest_id INT NOT NULL,user_id INT NOT NULL,CONSTRAINT pk_register PRIMARY KEY (contest_id, user_id)
);

三、表数据插入

梧桐数据库oracle数据库sql语句插入,由于两种数据库插入sql基本一致,这边以梧桐数据库展示。

用户表
INSERT INTO users ( useid, username ) values ( 8, 'wang' );
INSERT INTO users ( useid, username ) values ( 3, 'ding');
INSERT INTO users ( useid, username ) values ( 6, 'zhao' );
INSERT INTO users ( useid, username ) values ( 1, 'xu' );
注册表
INSERT INTO `Register` ( contest_id, user_id ) values ( 212, '1' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 213, '1' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 214, '1' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 220, '1' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 156, '1' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 156, '3' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 212, '3' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 212, '6' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 212, '8' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 213, '3' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 213, '6' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 213, '8' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 220, '3' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 220, '8' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 214, '3' );
INSERT INTO `Register` ( contest_id, user_id ) values ( 156, '8' );

四、sql实现

SELECT contest_id,ROUND(COUNT(DISTINCT user_id) / (SELECT COUNT(*) FROM users) * 100, 2) AS percentage
FROM Register
GROUP BY contest_id
ORDER BY percentage DESC, contest_id;

五、sql实现思路分析

ROUND(COUNT(DISTINCT user_id) / (SELECT COUNT() FROM users) * 100, 2) AS percentage: 计算每个产品的注册用户百分比,并保留两位小数。 COUNT(DISTINCT user_id): 计算每个产品的唯一注册用户数量。 (SELECT COUNT() FROM users): 计算总用户数量。

*100: 将结果转换为百分比。

ROUND(..., 2): 将结果保留两位小数。

GROUP BY contest_id: 按产品ID分组

ORDER BY percentage DESC, contest_id: 先按百分比降序排列,如果百分比相同,则按产品ID升序排列。


http://www.ppmy.cn/embedded/136872.html

相关文章

有无人机巡检为什么还会再采购巡检管理系统

在现代工业和社会管理中,巡检工作扮演着至关重要的角色。无论是电力线路、油气管道,还是城市基础设施,巡检都是确保其安全、稳定运行的关键环节。随着科技的进步,无人机巡检作为一种新兴的巡检方式,已经逐渐取代了传统…

libgdiplus在MacOS M1上问题:Unable to load shared library ‘libgdiplus‘

libgdiplus在MacOS M1上问题:Unable to load shared library libgdiplus 问题解决步骤1步骤2 问题 在mac上的pycharm中执行下面的代码时出现下面的错误 slide.get_thumbnail( RuntimeError: Proxy error(TypeInitializationException): The type initializer for…

Chromium127编译指南 Mac篇(五)- 编译Chromium

1. 前言 在Chromium127开发之旅的关键阶段,我们终于来到了编译这一激动人心的步骤。本文将详细指导您如何在macOS环境下成功编译Chromium。通过正确的配置和步骤,您将能够生成一个可运行的Chromium浏览器版本,为后续的调试、功能定制或性能优…

单臂路由技术,eNSP实验讲解

单臂路由技术,eNSP实验讲解 一、简要介绍1、概念2、工作原理3、优点4、缺点5、应用场景举例 二、eNSP仿真实验1、步骤一:2、步骤二:3、步骤三:4、步骤四: 三、总结。 一、简要介绍 1、概念 单臂路由(Rout…

Ardusub中添加自定义控制器

1.建议保留原程序 复制ardupilot文件夹到当前目录,命名为ardupilot_ARDC cp -r ardupilot ardupilot_copy2.切换Sub-4.5版本 Sub-4.1版本libraries里没有AC_CustomControl文件夹,我们需要用到这个文件夹所以需要进行切换分支,在当前ardupi…

Git核心概念

目录 版本控制 什么是版本控制 为什么要版本控制 本地版本控制系统 集中化的版本控制系统 分布式版本控制系统 认识Git Git简史 Git与其他版本管理系统的主要区别 Git的三种状态 Git使用快速入门 获取Git仓库 记录每次更新到仓库 一个好的 Git 提交消息如下&#…

6、If、While、For、Switch

6、If、While、For、Switch 一、If 1、if-else if (boolean) {代码块 } else if (boolean) {代码块 } else if (boolean) {代码块 } else { // 默认情况代码块 }关于IDEA单元测试控制台不能输入数据的问题: https://blog.csdn.net/m0_72900498/article/details/…

数据结构:七种排序及总结

文章目录 排序一插入排序1直接插入排序2希尔排序二选择排序3直接选择排序4堆排序三 交换排序5冒泡排序6快速排序四 归并排序7归并排序源码 排序 我们数据结构常见的排序有四大种,四大种又分为七小种,如图所示 排序:所谓排序,就是…