LeetCode MySQL 1070. 产品销售分析 III(group by 陷阱)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

销售表 Sales:

+-------------+-------+
| Column Name | Type  |
+-------------+-------+
| sale_id     | int   |
| product_id  | int   |
| year        | int   |
| quantity    | int   |
| price       | int   |
+-------------+-------+
sale_id 是此表的主键。
product_id 是产品表的外键。
请注意,价格是按每单位计的。

产品表 Product:

+--------------+---------+
| Column Name  | Type    |
+--------------+---------+
| product_id   | int     |
| product_name | varchar |
+--------------+---------+
product_id 是此表的主键。

编写一个 SQL 查询,选出每个销售产品的 第一年 的 产品 id、年份、数量 和 价格。

查询结果格式如下:

Sales table:
+---------+------------+------+----------+-------+
| sale_id | product_id | year | quantity | price |
+---------+------------+------+----------+-------+ 
| 1       | 100        | 2008 | 10       | 5000  |
| 2       | 100        | 2009 | 12       | 5000  |
| 7       | 200        | 2011 | 15       | 9000  |
+---------+------------+------+----------+-------+Product table:
+------------+--------------+
| product_id | product_name |
+------------+--------------+
| 100        | Nokia        |
| 200        | Apple        |
| 300        | Samsung      |
+------------+--------------+Result table:
+------------+------------+----------+-------+
| product_id | first_year | quantity | price |
+------------+------------+----------+-------+ 
| 100        | 2008       | 10       | 5000  |
| 200        | 2011       | 15       | 9000  |
+------------+------------+----------+-------+

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/product-sales-analysis-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 错误写法,下面 group by 后,min 只会把最小的年份取出来,其他列是错的
# Write your MySQL query statement below
select product_id, min(year) first_year, quantity, price
from Sales
group by product_id
  • 正解
# Write your MySQL query statement below
select product_id, year first_year, quantity, price
from Sales
where (product_id, year) in
(select product_id, min(year)from Salesgroup by product_id
)

我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中excel文件导入数据库中_〖JAVE经验〗java中Excel导入数据库里

1 从Excel文件读取数据表 Java Excel API既可以从本地文件系统的一个文件(.xls),也可以从输入流中读取Excel数据表。读取Excel数据表的第一步是创建Workbook(术语:工作薄),下面的代码片段举例说明了应该如何操作:(完整代码见Excel…

怎样在方框里打钩?

打开Microsoft Office Word 2003文档,鼠标单击菜单栏“插入”下拉菜单中的“符号”,选择“符号”对话框中的“符号”标签,在“字体”中选择“Wingdings 2”,即可在众多符号中找到“方框里面打钩的符号”。转载于:https://www.cnbl…

LeetCode MySQL 1364. 顾客的可信联系人数量

文章目录1. 题目2. 解题1. 题目 顾客表:Customers ------------------------ | Column Name | Type | ------------------------ | customer_id | int | | customer_name | varchar | | email | varchar | ------------------------ customer_…

JS控制锚点打开新窗口

在XHTML中不能含有TARGET,那么要使链接打开新窗口的话, 如果针对页面上所有锚点,JAVASCRIPT如下即可: function externalLinks() {if (!document.getElementsByTagName) return;var anchors document.getElementsByTagName("…

java showinputdialog_java - JOptionPane.showInputDialog中的多个输入

有没有一种方法可以在JOptionPane.showInputDialog中创建多个输入,而不是只创建一个输入?最佳答案:对。您知道可以将任何Object放入大多数Object的JOptionPane.showXXX methods参数中,并且经常会发现Object恰好是一个JPanel参数。…

LeetCode MySQL 602. 好友申请 II :谁有最多的好友(union all)

文章目录1. 题目2. 解题1. 题目 在 Facebook 或者 Twitter 这样的社交应用中,人们经常会发好友申请也会收到其他人的好友申请。 表 request_accepted 存储了所有好友申请通过的数据记录,其中, requester_id 和 accepter_id 都是用户的编号。…

用async 解放你的大脑

在js中,代码嵌套和代码回调非常常见,不仅编写麻烦而且异常反人类。让我等码农很是头痛 function () {function () {function () {function () {//pass}}} }这是一个常规的嵌套,如果每个function 的逻辑处理都比较多的话,会导致整个…

linux java 共享内存_Linux进程间通信之共享内存

一,共享内存内核管理一片物理内存,允许不同的进程同时映射,多个进程可以映射同一块内存,被多个进程同时映射的物理内存,即共享内存。映射物理内存叫挂接,用完以后解除映射叫脱接。1,共享内存的特…

LeetCode MySQL 1193. 每月交易 I(date_format)

文章目录1. 题目2. 解题1. 题目 Table: Transactions ------------------------ | Column Name | Type | ------------------------ | id | int | | country | varchar | | state | enum | | amount | int | | trans_date …

《大数据时代》摘录

本文内容摘自《大数据时代》,浙江人民出版社,2013年1月第1版。 引言 大数据并非一个确切的概念。最初,这个概念是指需要处理的信息量过大,已经超出了一般电脑在处理数据时所能使用的内存量,因此工程师们必须改进处理数…

java子类继承父类实际_java子类继承父类,是否生成父类对象?

从根本上来说,对象就是一个特殊结构的内存以及可以访问这块内存的代码。所以你这个问题其实就是一个到底如何看什么是对象的。我不了解现在jvm的具体实现,所以只能就理论上进行下分析。由于现代的编译器都可以对内存及其访问进行优化,所以&am…

LeetCode 1257. 最小公共区域(最小公共祖先)

文章目录1. 题目2. 解题1. 题目 给你一些区域列表 regions ,每个列表的第一个区域都包含这个列表内所有其他区域。 很自然地,如果区域 X 包含区域 Y ,那么区域 X 比区域 Y 大。 给定两个区域 region1 和 region2 ,找到同时包含…

创建样式和样式表

css中的样式(或者规则)由两部分组成:选择器和声明块。每个声明块里面可以包含多条声明,它们之间由分号分隔。如下图所示: 链接外部样式表 外部样式表可以使网页打开的速度更快。但是浏览器在下载外部样式表的时候&…

java 程序输出 赵_编写一个完整的JAVA的程序

编写一个完整的JAVA的程序关注:84 答案:1 mip版解决时间 2021-02-05 08:43提问者妳螚鬧俄螚笑2021-02-05 02:591,接口Person Show()方法输出对象的描述信息。2.类Student 实现Person接口,另有以下属性和方法:属性(私有)String name。方法Student():构造…

LeetCode 1229. 安排会议日程(双指针)

文章目录1. 题目2. 解题1. 题目 你是一名行政助理,手里有两位客户的空闲时间表:slots1 和 slots2,以及会议的预计持续时间 duration,请你为他们安排合适的会议时间。 「会议时间」是两位客户都有空参加,并且持续时间…

LeetCode 1182. 与目标颜色间的最短距离(二分查找/DP)

文章目录1. 题目2. 解题2.1 二分查找2.2 DP1. 题目 给你一个数组 colors,里面有 1、2、 3 三种颜色。 我们需要在 colors 上进行一些查询操作 queries,其中每个待查项都由两个整数 i 和 c 组成。 现在请你帮忙设计一个算法,查找从索引 i 到…

java跳转html页面_springboot 2.0.8 跳转html页面

springboot 成功创建了后,继续写一下跳转到html页面的方法, 这里我把 jsp和html 分开两篇文章。然后再写一个两种方式整合的这篇 是跳转到html文件的1创建目录结果和html文件​ 2配置return 返回模版​ 3.UserController.java代码如下,这里就直接使用上…

LeetCode MySQL 1212. 查询球队积分

文章目录1. 题目2. 解题1. 题目 Table: Teams ------------------------- | Column Name | Type | ------------------------- | team_id | int | | team_name | varchar | ------------------------- 此表的主键是 team_id,表中的每一行都…

js encodeurl java接收_在JS中encodeURI(url)怎样才能不出现乱码?

这次给大家带来在JS中encodeURI(url)怎样才能不出现乱码?,在JS中使用encodeURI(url)的注意事项有哪些,下面就是实战案例,一起来看一下。一般情况下, 发送 encodeURIComponent(parmeName)""encodeURIComponent(parmeValu…

Google Maps API 简易教程(四)

Google Maps 类型 一、基本地图类型 Google Maps API支持一下map类型: .ROADMAP(正式的,默认为2D地图) .SATELLITE(逼真的地图) .HYBRID(逼真地图道路和城市名) .TERRAIN(山脉和河流地图等等&am…