11.25sql测试题目

创建数据库demo,并创建相应的表:

CREATE DATABASE demo;
USE demo;
CREATE TABLE `allprovinces` (
  `name` varchar(255) NOT NULL,
  `abbr` varchar(255) NOT NULL
);
CREATE TABLE `products` (
  `name` varchar(255) NOT NULL,
  `price` float NOT  NULL,
  `craw_time` datetime NOT NULL,
  `market` varchar(255) NOT NULL,
  `province` varchar(255) not  NULL,
  `city` varchar(255) not  NULL
);
load data local infile '/root/ml-1m/allprovinces.dat' into table allprovinces
CHARACTER SET utf8 
FIELDS TERMINATED BY '\t' 
  OPTIONALLY ENCLOSED BY '' 
  ESCAPED BY '\\' 
LINES TERMINATED BY '\n';


load data local infile '/root/ml-1m/products.dat' into table products
CHARACTER SET utf8 
FIELDS TERMINATED BY '\t' 
  OPTIONALLY ENCLOSED BY '' 
  ESCAPED BY '\\' 
LINES TERMINATED BY '\n';

1.统计每个省份的农产品市场总数

 SELECT province,COUNT(DISTINCT market)
 FROM products 
 GROUP BY province;

在这里插入图片描述

2.根据农产品类型数量,统计排名前3名的省份

 SELECT province,COUNT(DISTINCT NAME) num
 FROM products 
 GROUP BY province ORDER BY num DESC LIMIT 3 ;

在这里插入图片描述

3.根据农产品类型数量,统计每个省份排名前3名的农产品市场

with t as (
select count(distinct name) product_count,market,province
from products
group by province,market
),
tt as(
select row_number()over(partition by province order by product_count desc) row_num,market,province
from t 
group by province,market
)
select province,market,row_num
from tt 
where row_num<=3;

在这里插入图片描述

4.计算山西省每种农产品的价格波动趋势,即计算每天价格均值,并将结果输出到控制台上。
某种农产品的价格均值计算公式:
PAVG = (PM1+PM2+…+PMn-max§-min§)/(N-2)
其中,P 表示价格,Mn 表示 market,即农产品市场。PM1 表示 M1 农产品市场的该产品价格,
max§表示价格最大值,min§价格最小值。

with t as (
select name,market,price
from products
where province='山西'
)
select name,
case when count(price)<=2 then round(sum(price)/count(price),3) else round((sum(price)-max(price)-min(price))/(count(price)-2),3) end as pavg
from t 
group by name;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值