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

ops/2024/11/15 4:08:29/

一、背景说明

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

二、表结构说明

梧桐数据库建表语句

用户表

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/ops/133404.html

相关文章

深入解析TOML、XML、YAML和JSON:优劣对比与场景应用

摘要:本文将介绍四种常见的配置文件和数据交换格式:TOML、XML、YAML和JSON,通过具体的使用例子分析它们的优缺点,并探讨在不同场景下的应用选择。 正文: 一、TOML 优点: 易于阅读和编写:TOML的…

【专题】2024年全球生物医药交易报告汇总PDF洞察(附原数据表)

原文链接:https://tecdat.cn/?p38191 在当今复杂多变的全球经济环境下,医药行业正面临着诸多挑战与机遇。2024 年,医药行业的发展态势备受关注。 一方面,全球生物医药交易活跃,2021 - 2023 年的交易中,已…

open3d

open3d open3d用于 3D 数据处理的现代库。 简介 Open3D 是一个开源库,支持快速开发处理 3D 数据的软件。Open3D 前端公开了一组精心挑选的 C 和 Python 数据结构和算法。后端经过高度优化,并设置为并行化。Open3D 是从零开始开发的,具有一更…

大厂面试官最喜欢问题的MySQL唯一索引问题,这三个唯一索引面试题一定要会!别让它们成了你职场路上的绊脚石!

嘿,各位面试官眼中的“潜力股”们,想要在职场江湖中独领风骚,MySQL的这些“独门秘籍”你可得好好掌握!啥是唯一索引?那可是数据库里的守护神,保证数据独一无二,让查询效率嗖嗖提升!但…

vue3使用element-plus,树组件el-tree增加引导线

vue3使用element-plus,树组件el-tree增加引导线 vue3项目element-plus,树组件el-tree增加引导线 element-plus组件库的el-tree样式 因为element的样式不满足当前的的需求,UI图,所以对el-tree进行增加了引导线 修改样式如下&am…

信息管理中的人为因素

在信息管理中,所有权问题、没有边界的数据库和利益相关者是与数据管理、数据治理以及信息系统架构密切相关的核心概念。它们涉及到数据的归属、数据的整合与共享以及多个参与方的需求和责任。以下是对这些概念的详细解释: 1. Ownership Issues&#xff…

初识Linux · 消息队列和信号量

目录 前言: 消息队列 信号量 前言: 对于消息队列,信号量,共享内存都是隶属于system V这个标准下的进程间通信,其实上文的共享内存已经是基本上快被淘汰的了,对于其他的两个,消息队列和信号量…

Linux 系统结构

Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。 1. linux内核 内核是操作系统的核心,具有很多最基本功能,它…