暂无图片
暂无图片
9
暂无图片
暂无图片
暂无图片

梧桐数据库之以识别优质的移动服务套餐为例讲解SQL实现分享

江苏-梧桐 2024-11-06
140

一、背景说明

移动运营商可以提供多种不同的移动服务套餐给客户,每个套餐都有其独特的描述、价格以及用户满意度评分。为了更好地了解市场反应并优化产品组合,我们需要对现有的套餐进行分析,找出那些被用户认为“优质”且具有奇数ID的套餐。这里,“优质”的定义是该套餐的描述不包含“boring”这个词,最终结果将按用户满意度从高到低排序。下面将以 梧桐数据库的实现为例,给大家讲解实现思路。

二、表结构说明

-- 移动服务套餐表建表语句 CREATE TABLE packages ( id INT PRIMARY KEY COMMENT '套餐ID', package_name VARCHAR(255) NOT NULL COMMENT '套餐名称', description TEXT NOT NULL COMMENT '套餐描述', satisfaction_rating DECIMAL(3,2) NOT NULL COMMENT '用户满意度评分(0-10分)' );

三、表数据插入

INSERT INTO packages (id, package_name, description, satisfaction_rating) VALUES (1, '无限流量包', '享受无限制的数据使用量,适合重度网络使用者。', 9.2), (2, '家庭共享包', '一个账号支持多个设备同时在线,非常适合家庭使用。', 8.7), (3, '基础语音包', '提供基本的通话服务,适用于较少上网的用户。', 5.6), (4, '国际漫游包', '为出国旅行者提供的特别优惠,包括国际通话和数据。', 8.4), (5, '视频流媒体包', '专为喜欢在线观看电影和电视节目的用户设计。', 9.5), (6, '经济实惠包', '价格亲民的基础套餐,满足日常通讯需求。', 6.8);

四、实现思路分解

  1. 筛选条件:首先根据题目要求,选择description中不含"boring"关键字的记录。
  2. 进一步筛选:接着,仅保留那些id为奇数的记录。
  3. 排序:最后,按照satisfaction_rating字段降序排列结果集,以确保最高评价的服务排在最前面。

五、SQL代码实现

SELECT * FROM packages WHERE description NOT LIKE '%boring%' -- 剔除description中包含'boring'的数据 AND MOD ( id, 2 ) = 1 -- 通过mod函数,筛选出id为奇数的数据 ORDER BY satisfaction_rating DESC; -- 按照satisfaction_rating降序排列

SQL查询语句通过结合使用LIKE操作符来排除含有特定关键字的记录,利用数学函数MOD()识别奇数ID,并通过ORDER BY子句实现了所需的数据排序。这样就可以有效地获取到符合业务需求的数据集合。

执行结果如下:

id package_name description satisfaction_rating
5 视频流媒体包 专为喜欢在线观看电影和电视节目的用户设计 9.50
1 无限流量包 享受无限制的数据使用量,适合重度网络使用者。 9.20
3 基础语音包 提供基本的通话服务,适用于较少上网的用户。 5.60
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论