当前位置: 首页 > news >正文

网站建设 李奥贝纳网站的推广优化

网站建设 李奥贝纳,网站的推广优化,可以通过哪些网站注册域名,潍坊做网站个人工作室大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:1158. 市场分析二、解题1.错误示范①提交SQL运行结果2.正确示范①提交SQL运行结果3.错误示范②提交SQL运行结果4.正确示范②提交SQL运行结果5.其他总结前…

大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。

文章目录

  • 前言
  • 一、题目:1158. 市场分析
  • 二、解题
    • 1.错误示范①
      • 提交SQL
      • 运行结果
    • 2.正确示范①
      • 提交SQL
      • 运行结果
    • 3.错误示范②
      • 提交SQL
      • 运行结果
    • 4.正确示范②
      • 提交SQL
      • 运行结果
    • 5.其他
  • 总结


前言


一、题目:1158. 市场分析

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: Items

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

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

以 任意顺序 返回结果表。

查询结果格式如下。

示例 1:

输入:
Users 表:
+---------+------------+----------------+
| 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 表:
+----------+------------+---------+----------+-----------+
| 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 表:
+---------+------------+
| item_id | item_brand |
+---------+------------+
| 1       | Samsung    |
| 2       | Lenovo     |
| 3       | LG         |
| 4       | HP         |
+---------+------------+
输出:
+-----------+------------+----------------+
| 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              |
+-----------+------------+----------------+

二、解题

1.错误示范①

提交SQL

select u1.user_id buyer_id,
u1.join_date,
count(1) orders_in_2019
from Users u1
left join Orders u2 
on u1.user_id=u2.buyer_id and substr(u2.order_date,1,4)='2019'
group by u1.user_id,u1.join_date

运行结果

2.正确示范①

提交SQL

select u1.user_id buyer_id,
u1.join_date,
count(u2.order_id) orders_in_2019
from Users u1
left join Orders u2 
on u1.user_id=u2.buyer_id and substr(u2.order_date,1,4)='2019'
group by u1.user_id,u1.join_date

运行结果

3.错误示范②

提交SQL

select u1.user_id buyer_id,
u1.join_date,
u2.num orders_in_2019
from Users u1
left join (select buyer_id,count(1) numfrom Orders where substr(order_date,1,4)='2019'group by buyer_id
) u2
on u1.user_id=u2.buyer_id

运行结果

4.正确示范②

提交SQL

select u1.user_id buyer_id,
u1.join_date,
ifnull(u2.num,0) orders_in_2019
from Users u1
left join (select buyer_id,count(1) numfrom Orders where substr(order_date,1,4)='2019'group by buyer_id
) u2
on u1.user_id=u2.buyer_id

或者

select u1.user_id buyer_id,
u1.join_date,
# ifnull(u2.num,0) orders_in_2019
case when u2.num is null then 0 else u2.num end as orders_in_2019
from Users u1
left join (select buyer_id,count(1) numfrom Orders where substr(order_date,1,4)='2019'group by buyer_id
) u2
on u1.user_id=u2.buyer_id

或者

select u1.user_id buyer_id,
u1.join_date,
ifnull(u2.num,0) orders_in_2019
from Users u1
left join (select buyer_id,count(1) numfrom Orders where year(order_date)='2019'group by buyer_id
) u2
on u1.user_id=u2.buyer_id

运行结果

5.其他


总结

错误示范①错在返回的无订单数是仍是1,应该把count(1)改为count(u2.order_id);
错误示范②错在返回的无订单数是null,应该把null转换成0;
知识点:
取2019年可以用substr(order_date,1,4)=‘2019’,也可以用year(order_date)=‘2019’;
将null转换成0可以用ifnull(u2.num,0),也可以用case when u2.num is null then 0 else u2.num end;
count(1)和count(指定字段)区别:
count(1) 会统计表中的所有的记录数,同count(*) ,包含字段为null 的记录。
count(指定字段) 会统计该字段在表中出现的次数,忽略字段为null 的情况。不统计字段为null 的记录。

http://www.hengruixuexiao.com/news/50814.html

相关文章:

  • 上海互联网设计公司百度站长工具seo查询
  • 西安大网站建设公司排名山东服务好的seo公司
  • 关于京东商城网站建设的实践报告seo交流网
  • 星月教你做网站网站优化快速排名软件
  • 云优化 网站建设厦门人才网app
  • 电子商务网站建设与管理第四章答案厉害的seo顾问
  • 周口网站推广惠州seo外包服务
  • 武汉做网站互助系统廊坊seo网络推广
  • 网站建设步奏快手作品推广网站
  • 上海网站工作室权重查询入口
  • 网站建设加盟合作最新seo教程
  • 杭州电子网站建设方案有创意的网络营销案例
  • 什么是网络营销网络营销与电商营销有什么区别杭州seo排名
  • 网站怎么做360免费优化营销网络推广方式有哪些
  • 做日用品有什么网站好北京搜索关键词优化
  • WordPress自建图床API广东搜索引擎优化
  • 中国招标与采购网seo推广怎么做视频教程
  • php 可以自己做网站吗互联网广告是做什么的
  • 如何用vps建网站网站发布与推广
  • html5做网站的总结什么样的人适合做策划
  • 做网站的抬头标语怎么做seo接单
  • wordpress有哪些好模版青岛网站seo公司
  • 金融网站建设方案ppt模板app下载注册推广平台
  • 电子商务网站建设教程百度官方优化软件
  • 石家庄新钥匙网站志鸿优化网官网
  • 网站流量站怎么做一份完整的营销策划书
  • 怎么用链接进自己做的网站南京seo代理
  • 个人做啥网站流量大杭州优化外包
  • 牌具做网站目前最新的营销模式有哪些
  • 洛阳网站建设哪家好北京网站优化排名