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

0基础做下载网站百度论坛

0基础做下载网站,百度论坛,上海营业执照查询网上查询,四川省建设厅官网信息查询平台LC1211 查询结果的质量和占比 知识点: 1.AVG函数的基础语法: SELECT AVG(column_name) FROM table_name [WHERE conditions]; 2.注意事项 avg函数的空值处理:若score列全为null , 则会返回 null值 -- 如果 score 列全为 NULL&…

LC1211 查询结果的质量和占比

知识点:

1.AVG函数的基础语法:

SELECT AVG(column_name) 
FROM table_name 
[WHERE conditions];

2.注意事项 avg函数的空值处理:若score列全为null , 则会返回 null值

-- 如果 score 列全为 NULL:
SELECT AVG(score) FROM students WHERE class = 'C';
-- 结果为 NULL

3. avg函数的高级用法 AVG后面跟一个条件

1. 原理:布尔值转数值​

  • 在 MySQL 中,条件表达式(如 rating < 3)的结果会被隐式转换为 ​​整数​​:

    • ​真(True)​​ → 转换为 1

    • ​假(False)​​ → 转换为 0

  • 因此,AVG(rating < 3) 实际上是在计算 ​​满足条件的行数占总行数的比例​​(即 1 的平均值)。

比如本题中:

要统计rating 小于 3 占的百分比 , 可以用avg(rating < 3)这样的布尔表达式 , 若条件成立 ,msql会自动将其转化为 1 , 相当于 rating < 3 的行都会认为是 1 , 再加起来 除以行数 , 就是占比了.

本题代码

select 
date_format(trans_date , '%Y-%m') as month ,
country , 
count(*) as trans_count ,
count(case when state = 'approved' then 1 end) as approved_count , 
sum(amount) as trans_total_amount ,
sum(case when state = 'approved' then amount else 0 end) as approved_total_amount
from Transactions
group by month , country
select 
date_format(trans_date , '%Y-%m') as month 


​1. 格式符定义​

​格式符​​含义​​示例​
%y​两位年份​​(00-99)2023 → 23
%Y​四位年份​​(0000-9999)2023 → 2023
%m​两位数字月份​​(01-12)12月 → 12
%M​月份英文全名​​(January-December)12月 → December

2.mysql中各关键词执行顺序

在SQL查询的执行过程中,通常的顺序是从FROM开始,然后是WHERE、GROUP BY、HAVING、SELECT、ORDER BY和LIMIT。

LC1174 即时食物配送

思路

1.先把每位顾客首次下单日期和id查出来 注意要group by 顾客id。作为子表

select customer_id , min(order_date) as first_date from Delivery group by customer_id  as first_orders

2.为了获取 顾客期望的配送日期 , 需要将查出来的子表和delivery表连接 ,连接条件为顾客id相同、下单日期一致。

select *
from Delivery d 
join 
(select customer_id , min(order_date) as first_date from Delivery group by customer_id ) as first_orders
on d.customer_id = first_orders.customer_id and d.order_date = first_orders.first_date

3.按照题意统计百分率即可。

本题知识点:join 和 left join

为什么本题left join 不行?(其实也可以 ,把 count (*) 换成 count(列名即可))

本质在于left join 和 join的逻辑。 join只会连接并返回两张表中满足连接条件的那些行 ,而left join则会完整的返回左表的所有内容 以及满足连接条件的行,不满足连接条件的会自动成为null值,

本题若使用 left join 链接后的结果就会出现许多null值 , 因为d.order_date = first_orders.first_date不满足的的行依然会被保留 , 只是左表不变,右表被替换成null值了

而count(*) 、 count(1)会数出所有的行数 , 而count(列名) 是遇到空行 就跳过

http://www.dtcms.com/wzjs/381340.html

相关文章:

  • 阿里巴巴的网站流程哪家网络公司比较好
  • 大型网站建设报价方案广州百度seo排名优化
  • 徐州网站开发市场新开发的app怎么推广
  • 企业网站前期建设方案案例焊工培训ppt课件
  • 如何自己做公司网站国际新闻最新消息美国
  • 大连城市建设档案馆官方网站seo搜索引擎优化试题
  • 福州专业网站建设服务商启信聚客通网络营销策划
  • 百度显示网站正在建设中yahoo引擎入口
  • 如何做网站规划守游网络推广平台
  • 网站开发管理学什么5g影讯5g天线在线观看免费视频
  • 网站建设一条龙怎么开展网络营销推广
  • html5登录界面完整代码seo优化交流
  • 做网站大概需要几个人南京百度搜索优化
  • 房屋设计装修网站佛山旺道seo优化
  • 大连市城乡建设局网站自己怎么注册网站
  • 什么网站上做指甲最便宜长沙seo网站优化公司
  • 用php做的博客网站seo关键字优化教程
  • 云南旅行社网站建设成都网站优化seo
  • 湖北省住房和城乡建设厅网站有友情链接的网站
  • 计算机基础网站建设和网络安全网络优化培训
  • 深圳公司名称核准查询重庆百度快速优化
  • 简洁的网站地图模板营销型网站的公司
  • 曰本真人性做爰网站午夜网站长沙百度推广开户
  • 网站建设公司做销售好不好?湖南靠谱seo优化报价
  • 深圳定制家具厂seo网站建设是什么意思
  • 视频网站用什么做微信指数查询入口
  • 大连营销型网站建设柳州网站建设哪里有
  • 优质做网站费用创建app平台
  • adobe软件做网站的seo网站关键词优化费用
  • WordPress大前端dux宁波seo外包推广渠道