SQL题:

文章内容涵盖了SQL查询技巧,包括处理NULL值、产品销售数据的关联查询、找出未进行交易的顾客、监控温度变化和计算机器进程平均运行时间。
摘要由CSDN通过智能技术生成

1、寻找用户推荐人 

 

select name 
from customer 
where ifnull(referee_id,0) !=2;

null不可以直接与数值类比较,可以用到 ifnull 判断null值,将其转为0
select name 
from customer
where id  not in 
(select id 
from customer where  referee_id =2)
select name 
from Customer 
where referee_id != 2 or referee_id is null

= 或 != 只能判断基本数据类型,is 关键字只能判断null
null值无法与确定的值作比较,用 is NULL 或者 is not NULL 判断

2、产品销售分析

编写解决方案,以获取 Sales 表中所有 sale_id 对应的 product_name 以及该产品的所有 year 和 price

select  product_name, year, price from Sales 
left join product 
on Sales.product_id =product.product_id

3、进店却未进行过交易的顾客

​ 

解释:
ID = 23 的顾客曾经逛过一次购物中心,并在 ID = 12 的访问期间进行了一笔交易。
ID = 9 的顾客曾经逛过一次购物中心,并在 ID = 13 的访问期间进行了一笔交易。
ID = 30 的顾客曾经去过购物中心,并且没有进行任何交易。
ID = 54 的顾客三度造访了购物中心。在 2 次访问中,他们没有进行任何交易,在 1 次访问中,他们进行了 3 次交易。
ID = 96 的顾客曾经去过购物中心,并且没有进行任何交易。
如我们所见,ID 为 30 和 96 的顾客一次没有进行任何交易就去了购物中心。顾客 54 也两次访问了购物中心并且没有进行任何交易。

有一些顾客可能光顾了购物中心但没有进行交易。请你编写一个解决方案,来查找这些顾客的 ID ,以及他们只光顾不交易的次数。 

select customer_id,count(customer_id) as count_no_trans from 

(select customer_id, transaction_id from Visits v
left join Transactions t
on v.visit_id = t.visit_id) as a

where transaction_id is null group by customer_id

4、上升的温度

SELECT w.id

FROM weather w

INNER JOIN Weather a

ON w.recordDate = DATE_ADD(a.recordDate, INTERVAL 1 day)

WHERE w.Temperature > a.Temperature;

5、每台机器的进程平均运行时间

 

select a1.machine_id, round(avg(a2.TIMESTAMP - a1.TIMESTAMP ), 3) as processing_time
from activity a1, activity a2
where a1.machine_id = a2.machine_id
and a1.process_id = a2.process_id
and a1.activity_type = 'start'
and a2.activity_type = 'end'
GROUP BY a1.machine_id;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值