首页 > 数据库 >SQL刷题小计

SQL刷题小计

时间:2023-08-29 09:44:13浏览次数:56  
标签:小计 order num SQL id 查询 o2 select 刷题

SQL刷题小计

确定哪些订单购买了 prod_id 为 BR01 的产品(2)

这个题可以采用子查询和联合查询

子查询

# 先在第一张表当中查询出id为BRO1的数据然后再将这个数据放在第二张表当中查询
select order_num from orderitems where prod_id='BR01';
select cust_id,order_date from Orders where order_num in (select order_num from OrderItems where prod_id='BR01') order by order_date;

联合查询

# 联合查询 让o1.prod_id='BR01' 并且o2.order_num=o1.order_num 就行
select o2.cust_id,o2.order_date from OrderItems o1,Orders o2 where o1.prod_id='BR01' AND o2.order_num=o1.order_num order by o2.order_date;

返回顾客名称和相关订单号以及每个订单的总价

3个表格联合查询

select c.cust_name, o.order_num, o2.quantity*o2.item_price as OrderTotal -- 这里注意计算最后的价格
from Customers c,
     Orders o,
     OrderItems o2
where c.cust_id = o.cust_id -- 注意查询的条件
  and o2.order_num = o.order_num order by c.cust_name,o.order_num;

确定最佳顾客的另一种方式(二)

这个题有点难度,不太会

SQL104返回产品名称和每一项产品的总订单数

SQL30 统计每种性别的人数

这个题注意掌握SQL中if 语句的用法以及自定义分组查询的用法.

select if(profile like '%female', 'female', 'male') gender, count(*) number
# 先使用if判断profile中是否存在female 如果存在就返回female 否则返回male ,然后以这个进行分组,进行count统计
from user_submit
group by gender;

下面来使用SUBSTRING_INDEX函数解题

SUBSTRING_INDEX函数介绍

select substring_index(profile,',',-1) gender,count(*)  number from user_submit group by gender;
# 先使用substring_index分割出来是人员是哪一种性别,然后进行分组,然后就和上面的一样了

标签:小计,order,num,SQL,id,查询,o2,select,刷题
From: https://www.cnblogs.com/harper886/p/17663942.html

相关文章

  • 初识MySql
    初始MySqljavaEE:企业级java开发web前端(页面:展示,数据!)后台(连接点,链接数据库JDBC,链接前端(控制,控制试图跳转,给前端传数据))数据库(存数据,Txt,Excel,Word)1.只写代码,数据库。基本操作2.操作系统,数据结构与算法!3.离散数学,数学电路,体系结构1.学习数据库原因?岗位需求。大数据时代。......
  • 牛客——SQL165 统计活跃间隔对用户分级结果
    描述用户行为日志表tb_user_logiduidartical_idin_timeout_timesign_cin110990012021-08-3110:00:002021-08-3110:00:090210990022021-11-0411:00:552021-11-0411:00:590310890012021-09-0110:00:012021-09-0110:01:500410890012......
  • MYSQL基础语法-cnblog
    MYSQL基础语法基础语法:1.创建数据库:creatdatabase***;(数据库名称自定义)2.使用数据库:use***;(已经创建好的数据库名称)3.描述表的结构:desc**(表字段成员)4.显示表格:showtables;5.查询当前数据库:selectdatabase();6.重命名文件:select--as(as可省略)--(中文......
  • sqlite3C语言api
    安装sqliteapt-getinstallsqlite3进入和退出sqlite3//进入sqlite3,内容保存至内存,退出后内容会丢失sqlite3<表名>//保存到文件中,例sqlite3student.exit//退出sqlite3,‘.'不能少创建表#以学生表为例createtablestudent(idinteger,nametext,ageinteger......
  • 再遇 MySQL “一招必杀” Bug
    TL;DR该Bug与DerivedConditionPushdownOptimization相关,从MySQL8.0.26引入,8.0.27和8.0.28仍受影响,直到MySQL8.0.29被修复。但是,MySQL8.0.29有其他致命缺陷,官网已经移除下载链接,建议升级到新版本MySQL8.0.33或MySQL8.0.34。问题现象该问题是vx群里的好......
  • sqlalchemy使用简单教程
    一、基本使用importtimeimportthreadingimportsqlalchemyfromsqlalchemyimportcreate_enginefromsqlalchemy.engine.baseimportEngine#第一步生成一个engine对象engine=create_engine("mysql+pymysql://root:[email protected]:3306/flask?charset=utf8",......
  • SQL注入基础学习7(续集)
    四、一些绕过技术5、脚本语言特性绕过在php语言中,id=1&id=2后面的值会自动覆盖前面的值。可以利用这点绕过一些waf的拦截id=1%00&id=2unionselect1,2,3有些waf会去匹配第一个id参数1%00,%00是截断字符,waf会自动截断,从而不会检测后面的内容。到了程序中id就是id=2unionsel......
  • QT连接MySql关于驱动问题
    今天分享一下在qt中连接数据库遇到的一些问题,主要是mysql驱动以及mysql动态库加载1.环境变量配置一下mysql和QT的环境变量,这个比较简单,各位自行百度。2.编译mysql驱动用QT打开mysql.pro文件,在第六行首加上#,然后在末尾加入:win32:LIBS+=-LD:/MySql/mysql-8.1.0-winx64/lib-l......
  • 【SQL】所谓的连表查询
    连表查询外连接外连接分为两种,左(外)连接和右(外)连接基本语法如下:SELECT字段列表FROM表1LEFTJOIN表2ON条件;这是左连接,因此以表1中的[字段列表]为基础,拿着这些字段去表2一条一条的找,看看有没有符合[条件]的,没有找到符合条件的用null代替,然后把表1与表2中的满足......
  • 数据库MySQL
     Concat(a,b)连接a,b两个字段                                    MySQL函数       分组之后再插入查询条件不能用Where关键字,而要用HA......