1795. 每个产品在不同商店的价格

简介: 1795. 每个产品在不同商店的价格

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

表:Products

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| product_id  | int     |
| store1      | int     |
| store2      | int     |
| store3      | int     |
+-------------+---------+
在 SQL 中,这张表的主键是 product_id(产品Id)。
每行存储了这一产品在不同商店 store1, store2, store3 的价格。
如果这一产品在商店里没有出售,则值将为 null。

请你重构 Products 表,查询每个产品在不同商店的价格,使得输出的格式变为(product_id, store, price) 。如果这一产品在商店里没有出售,则不输出这一行。

输出结果表中的 顺序不作要求

查询输出格式请参考下面示例。

示例 1:

输入:
Products table:
+------------+--------+--------+--------+
| product_id | store1 | store2 | store3 |
+------------+--------+--------+--------+
| 0          | 95     | 100    | 105    |
| 1          | 70     | null   | 80     |
+------------+--------+--------+--------+
输出:
+------------+--------+-------+
| product_id | store  | price |
+------------+--------+-------+
| 0          | store1 | 95    |
| 0          | store2 | 100   |
| 0          | store3 | 105   |
| 1          | store1 | 70    |
| 1          | store3 | 80    |
+------------+--------+-------+
解释:
产品 0 在 store1、store2、store3 的价格分别为 95、100、105。
产品 1 在 store1、store3 的价格分别为 70、80。在 store2 无法买到。

解题思路

目的是从 Products 表中选择每个产品在不同店铺的价格信息。查询会返回一个结果集,包含三列:product_id(产品ID)、store(店铺名称)和 price(对应店铺的价格)。

该查询使用了 UNION 操作符将三个子查询的结果合并在一起。每个子查询选择满足特定条件的记录,并为每个记录添加了 store 列和对应店铺的价格。

子查询1选择 store1 列不为空的记录,并给 store 列赋值为 ‘store1’,price 列赋值为 store1 列的值。

子查询2选择 store2 列不为空的记录,并给 store 列赋值为 ‘store2’,price 列赋值为 store2 列的值。

子查询3选择 store3 列不为空的记录,并给 store 列赋值为 ‘store3’,price 列赋值为 store3 列的值。

AC代码

SELECT product_id, 'store1' AS store, store1 AS price 
FROM Products 
WHERE store1 IS NOT NULL
UNION 
SELECT product_id, 'store2' AS store, store2 AS price 
FROM Products 
WHERE store2 IS NOT NULL
UNION 
SELECT product_id, 'store3' AS store, store3 AS price 
FROM Products 
WHERE store3 IS NOT NULL

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

目录
相关文章
|
1天前
|
监控 搜索推荐 数据挖掘
精准定价与促销:CRM中的价格和折扣管理艺术
在当今竞争激烈的商业环境中,CRM系统是企业维持客户忠诚度和提高销售效率的重要工具。其中,价格和折扣的统一管控尤为关键,直接影响企业的盈利能力和市场竞争力。通过集中管理平台,企业能确保各渠道价格一致,避免混乱,维护品牌形象。合理的折扣政策可吸引新客户,提升老客户复购率。利用数据分析优化价格策略,监控并调整政策效果,确保利润最大化。CRM系统的这些功能有助于控制成本、提高客户满意度,最终实现销售增长和利润提升。
|
存储 弹性计算 运维
一台阿里云电脑多少钱 “无影”价格标准曝光
一台阿里云电脑多少钱 “无影”价格标准曝光
708 0
|
7月前
|
监控 数据挖掘 API
淘宝商品详情数据(商品分析,竞品分析,代购商城建站与跨境电商,ERP系统商品数据选品)
淘宝商品详情数据在多个业务场景中发挥着关键作用,以下是一些主要的应用场景
|
SQL 存储 前端开发
商品热销排行【项目 商城】
商品热销排行【项目 商城】
58 0
|
数据采集 安全 搜索推荐
2023谷歌推广开户费用是多少?
答案是:3500元! 费用概览 开户基本费用 首先,我们需要明确的是,谷歌推广的开户费用可能会随时间和地区的不同而有所变化。 在2023年,开户费用可能会有所上调,但确切的金额需要在Google Ads的官方平台上查看或联系谷歌推广的官方代表。 预算与费用 在谷歌推广上,除了基本的开户费用,还需要为广告活动设置一个日常预算。 这意味着你每天愿意为广告投放支付的金额,而这部分费用是另外计算的。
174 0
2023谷歌推广开户费用是多少?
|
弹性计算 大数据 测试技术
阿里云服务器租赁费用,新版租赁费用及活动报价出炉
阿里云服务器租赁费用,新版租赁费用及活动报价出炉,2023年阿里云服务器6月优惠价格表来了,CPU内存配置可选2核2G、2核4G、2核8G、2核16G、4核4G、4核8G、4核16G、4核32G、8核8G、8核16G、8核32G、8核64G等配置
265 0
|
存储 弹性计算 分布式计算
阿里云服务器租赁费用(2022新版租赁费用及活动报价更新)
阿里云服务器租赁费用来了,本文更新了2022阿里云服务器租赁费用,包括特惠活动云服务器优惠价格及官方定价,云服务器1核2G1M带宽配置24.78元3个月1年356.83元、共享型2核4G服务器最低仅需413.86元1年、4核8G服务器765.94元1年、8核16G服务器1472.26元1年,独享型2核4G服务器最低仅需466.22元1年、4核8G服务器856.94元1年、8核16G服务器1635.74元1年。更多阿里云服务器热门配置活动报价及云服务器租赁费用及活动报价见下文。
2800 0
阿里云服务器租赁费用(2022新版租赁费用及活动报价更新)
|
弹性计算 Linux 数据安全/隐私保护
阿里云如何让客户选择既便宜有实惠的产品呢?
为了让新手了解去服务器,本期我们主要介绍如何购买阿里云ECS服务器,希望能通过我的经验,能帮助到大家!
746 0
|
弹性计算 网络协议
阿里云618活动优惠 年中大促销
阿里云618活动优惠 年中大促销
474 0
2019阿里云双11拼团优惠再升级,更多配置,更多实惠价格
11月1日,阿里云2019年的双11优惠活动再次升级,不仅主会场开通了推出了更多的优惠云服务器配置,在拼团分会场,也同时上架了几款更高性能云服务器,升级之后的具体云服务器配置及双11优惠价格如下: 实例规格 配置及带宽 年限 双11优惠价格 突发性能型t5 1核2G1M 1年 86 .