LeetCode MySQL 1158. 市场分析 I

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

Table: Users

+----------------+---------+
| Column Name    | Type    |
+----------------+---------+
| user_id        | int     |
| join_date      | date    |
| favorite_brand | varchar |
+----------------+---------+
此表主键是 user_id,表中描述了购物网站的用户信息,
用户可以在此网站上进行商品买卖。

Table: Orders

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| order_id      | int     |
| order_date    | date    |
| item_id       | int     |
| buyer_id      | int     |
| seller_id     | int     |
+---------------+---------+
此表主键是 order_id,外键是 item_id 和(buyer_id,seller_id)。

Table: Item

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| item_id       | int     |
| item_brand    | varchar |
+---------------+---------+
此表主键是 item_id。

请写出一条SQL语句以查询每个用户的注册日期和在 2019 年作为买家的订单总数

查询结果格式如下:

Users table:
+---------+------------+----------------+
| user_id | join_date  | favorite_brand |
+---------+------------+----------------+
| 1       | 2018-01-01 | Lenovo         |
| 2       | 2018-02-09 | Samsung        |
| 3       | 2018-01-19 | LG             |
| 4       | 2018-05-21 | HP             |
+---------+------------+----------------+Orders table:
+----------+------------+---------+----------+-----------+
| order_id | order_date | item_id | buyer_id | seller_id |
+----------+------------+---------+----------+-----------+
| 1        | 2019-08-01 | 4       | 1        | 2         |
| 2        | 2018-08-02 | 2       | 1        | 3         |
| 3        | 2019-08-03 | 3       | 2        | 3         |
| 4        | 2018-08-04 | 1       | 4        | 2         |
| 5        | 2018-08-04 | 1       | 3        | 4         |
| 6        | 2019-08-05 | 2       | 2        | 4         |
+----------+------------+---------+----------+-----------+Items table:
+---------+------------+
| item_id | item_brand |
+---------+------------+
| 1       | Samsung    |
| 2       | Lenovo     |
| 3       | LG         |
| 4       | HP         |
+---------+------------+Result table:
+-----------+------------+----------------+
| buyer_id  | join_date  | orders_in_2019 |
+-----------+------------+----------------+
| 1         | 2018-01-01 | 1              |
| 2         | 2018-02-09 | 2              |
| 3         | 2018-01-19 | 0              |
| 4         | 2018-05-21 | 0              |
+-----------+------------+----------------+

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

2. 解题

  • 先算出每个用户2019年的订单数量(有的用户没有,后面要join
select buyer_id, count(*) orders_in_2019
from Orders
where order_date between '2019-01-01' and '2019-12-31'
group by buyer_id
  • 上表跟Users join 产生笛卡尔积,不存在的用 ifnull
# Write your MySQL query statement below
select u.user_id buyer_id, u.join_date, ifnull(t.orders_in_2019,0) orders_in_2019
from Users u left join
(   select buyer_id, count(*) orders_in_2019from Orderswhere order_date between '2019-01-01' and '2019-12-31'group by buyer_id
)t
on u.user_id = t.buyer_id 

1291 ms


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

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

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

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

相关文章

sqlite 数据量_向SQLite批量导入csv,txt数据

将csv或者txt格式的文件导入SQLite一般有两种方式:使用pandas.readcsv()读取后,用to_sql方法写入数据库使用SQLiteStudio创建表格,再导入数据但是这两种方法在数据量比较大的时候会非常慢,这里提供一种使用官网提供的SQLite.exe命…

ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL(转)

http://www.cnblogs.com/John-Connor/archive/2012/05/03/2478821.html 引言-- 在初级篇中,我们介绍了如何利用基于ASP.NET MVC的Web程序中的Global文件来简单的重写路由。也介绍了它本身的局限性-依赖于路由信息中的键值对: 如果键值对中没有的值,我们无…

LeetCode MySQL 580. 统计各专业学生人数

文章目录1. 题目2. 解题1. 题目 一所大学有 2 个数据表,分别是 student 和 department ,这两个表保存着每个专业的学生数据和院系数据。 写一个查询语句,查询 department 表中每个专业的学生人数 (即使没有学生的专业也需列出&a…

LeetCode 1522. Diameter of N-Ary Tree(递归)

文章目录1. 题目2. 解题1. 题目 Given a root of an N-ary tree, you need to compute the length of the diameter of the tree. The diameter of an N-ary tree is the length of the longest path between any two nodes in the tree. This path may or may not pass thro…

LeetCode MySQL 1355. 活动参与者(any函数)

文章目录1. 题目2. 解题1. 题目 表: Friends ------------------------ | Column Name | Type | ------------------------ | id | int | | name | varchar | | activity | varchar | ------------------------ id 是朋友的 id 和该表的主…

LeetCode MySQL 578. 查询回答率最高的问题

文章目录1. 题目2. 解题1. 题目 从 survey_log 表中获得回答率最高的问题, survey_log 表包含这些列:id, action, question_id, answer_id, q_num, timestamp。 id 表示用户 id; action 有以下几种值:"show"&#xff…

LeetCode MySQL 1098. 小众书籍

文章目录1. 题目2. 解题1. 题目 书籍表 Books: ------------------------- | Column Name | Type | ------------------------- | book_id | int | | name | varchar | | available_from | date | ------------------------- book_…

LeetCode MySQL 1107. 每日新用户统计

文章目录1. 题目2. 解题1. 题目 Traffic 表: ------------------------ | Column Name | Type | ------------------------ | user_id | int | | activity | enum | | activity_date | date | ------------------------ 该表没有主键&a…

mysql gui 有哪些_推荐五款较好的MySQLGUI工具

大多数数据库都是由两个截然不同的部分组成的:后端(存储数据的地方)和前端(一个用于连接数据组件的用户界面)。这种架构可以大多数数据库都是由两个截然不同的部分组成的:后端(存储数据的地方)和前端(一个用于连接数据组件的用户界面)。这种架构可以把用…

共享打印机的方法

共享打印机的方法 1、在计算机上连接好打印机,并安装好打印机的驱动,测试是否在本机上可以打印 ; 2、在打印服务器上,共享该打印机; 3、保证打印服务器上的共享资源可以正常地访问; 4、在PC机运行“\\打印服…

LeetCode MySQL 1149. 文章浏览 II

文章目录1. 题目2. 解题1. 题目 Table: Views ------------------------ | Column Name | Type | ------------------------ | article_id | int | | author_id | int | | viewer_id | int | | view_date | date | ---------------------…

php增加mysql用户_mysql 增加用户

1. 新增用户 Sql代码 mysql insert into mysql. user (Host, User , Password ) values ( localhost , lionbule , password ( hello1234 )); mysqlflush privileges ; 或者 CREATEUSER usernamehost IDENTIFIEDBYpassword; 例子:CREATEUSERdoglo1. 新增用户Sql代码mysql>i…

LeetCode MySQL 1164. 指定日期的产品价格 *

文章目录1. 题目2. 解题1. 题目 产品数据表: Products ------------------------ | Column Name | Type | ------------------------ | product_id | int | | new_price | int | | change_date | date | ------------------------ 这张表的主键是 (…

自己动手写cpu 光盘_自己动手写CPU配套源码

自己动手写CPU的源代码,一共15章,可以完整实现MIPS的指令文件:n459.com/file/25127180-476886294以下内容无关:-------------------------------------------分割线---------------------------------------------目录一、往期回顾…

LeetCode 1484. 克隆含随机指针的二叉树(哈希/递归)

文章目录1. 题目2. 解题2.1 原地算法2.2 哈希表1. 题目 给你一个二叉树,树中每个节点都含有一个附加的随机指针,该指针可以指向树中的任何节点或者指向空(null)。 请返回该树的 深拷贝 。 该树的输入/输出形式与普通二叉树相同…

extjs2.0 ie8 下拉树_ExtJs下拉树的实现

直接上代码:Ext.ux.TreeCombo Ext.extend(Ext.form.ComboBox, {constructor : function(cfg) {cfg cfg || {};Ext.ux.TreeCombo.superclass.constructor.call(this, Ext.apply({maxHeight : 300,editable : false,mode : local,triggerAction : all,rootVisible :…

LeetCode 294. 翻转游戏 II(记忆化递归)

文章目录1. 题目2. 解题1. 题目 你和朋友玩一个叫做「翻转游戏」的游戏, 游戏规则:给定一个只有 和 - 的字符串。 你和朋友轮流将 连续 的两个 "" 反转成 "--"。 当一方无法进行有效的翻转时便意味着游戏结束,则另一方…

mysql 逻辑备份导入数据库_mysql逻辑备份(mysql dump的使用)

mysqldump 属于MySQL客户端工具mysqldump备份工具对于MyISAM存储引擎实现备份是温备份,对innodb存储引擎是可以实现热备份。使用mysqldump备份数据库可以实现完全备份 二进制日志文件,这样也算是完全备份 增量备份。首先将这个数据库备份下来这就是完全…

LeetCode 271. 字符串的编码与解码(4位16进制字符+字符串)

文章目录1. 题目2. 解题1. 题目 请你设计一个算法,可以将一个 字符串列表 编码成为一个 字符串。 这个编码后的字符串是可以通过网络进行高效传送的,并且可以在接收端被解码回原来的字符串列表。 1 号机(发送方)有如下函数&…

通过SQL Server 2008 访问Oracle 10g

之前写过一篇关于SQL Server 访问MySQL 数据库的文章,最近正好又遇到需要访问Oracle 的情况,将配置过程记录下来也供大家参考。 准备工作 事先在需要访问Oracle 数据库的主机上完成以下工作: 1. 安装SQL Server 数据库:SQL Server…