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

目录
相关文章
|
27天前
|
前端开发 PHP 数据库
小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统
全新首发小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统
50 0
小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统
|
存储 弹性计算 运维
一台阿里云电脑多少钱 “无影”价格标准曝光
一台阿里云电脑多少钱 “无影”价格标准曝光
708 0
|
7月前
|
监控 数据挖掘 API
淘宝商品详情数据(商品分析,竞品分析,代购商城建站与跨境电商,ERP系统商品数据选品)
淘宝商品详情数据在多个业务场景中发挥着关键作用,以下是一些主要的应用场景
|
SQL 存储 前端开发
商品热销排行【项目 商城】
商品热销排行【项目 商城】
54 0
|
7月前
|
监控 供应链 搜索推荐
淘宝 1688 京东商品详情数据场景,自营商城上货,价格监控,竞品分析等
淘宝、1688、京东商品详情数据在各自的电商平台上具有广泛的应用场景,自营商城上货、价格监控以及竞品分析则是电商领域的关键环节。这些要素共同构成了电商运营的完整链条,为商家提供了丰富的数据支持和策略选择。
|
弹性计算 大数据 测试技术
阿里云服务器租赁费用,新版租赁费用及活动报价出炉
阿里云服务器租赁费用,新版租赁费用及活动报价出炉,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等配置
262 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年。更多阿里云服务器热门配置活动报价及云服务器租赁费用及活动报价见下文。
2791 0
阿里云服务器租赁费用(2022新版租赁费用及活动报价更新)
|
弹性计算 Linux 数据安全/隐私保护
阿里云如何让客户选择既便宜有实惠的产品呢?
为了让新手了解去服务器,本期我们主要介绍如何购买阿里云ECS服务器,希望能通过我的经验,能帮助到大家!
746 0
|
弹性计算 网络协议
阿里云618活动优惠 年中大促销
阿里云618活动优惠 年中大促销
472 0
下一篇
DataWorks