套模板的网站为什么排名做不上去,设计的好看的网站,自助建站系统,中国廉政文化建设网站一、背景说明
移动运营商平台提供多种类型的产品权益#xff0c;用户可以通过订购来使用。平台需要定期统计各个产品的用户订购情况#xff0c;以便了解各个产品的受欢迎程度。这些统计数据将用于优化产品、提升用户体验和制定市场推广策略。
二、表结构说明
梧桐数据库建…一、背景说明
移动运营商平台提供多种类型的产品权益用户可以通过订购来使用。平台需要定期统计各个产品的用户订购情况以便了解各个产品的受欢迎程度。这些统计数据将用于优化产品、提升用户体验和制定市场推广策略。
二、表结构说明
梧桐数据库建表语句
用户表
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升序排列。