15- 22题聚合函数 - 高频 SQL 50 题基础版

news/2024/7/7 21:00:01 标签: sql, 数据库

目录

  • 1. 相关知识点
  • 2. 例子
    • 2.15 - 有趣的电影
    • 2.16 - 平均售价
    • 2.17 - 项目员工 I
    • 2.18 - 各赛事的用户注册率
    • 2.19 - 查询结果的质量和占比
    • 2.20 - 每月交易 I
    • 2.21 - 即时食物配送 II
    • 2.22 - 游戏玩法分析 IV

1. 相关知识点

  • 函数
函数含义
order by排序
group by分组
between 小值 and 大值取值范围
date_format(trans_date,‘%Y-%m’)日期转换格式
count(*)表示数据的行数,如果有分组,为分组后数据的行数
date_add(min(event_date),INTERVAL 1 DAY)日期相加

2. 例子

2.15 - 有趣的电影

在这里插入图片描述
在这里插入图片描述

sql">select
    * 
from 
    cinema
where
    description!='boring' and id%2!=0
order by 
    rating desc;

2.16 - 平均售价

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sql"># 注意:between 小值 and 大值 

select 
    u.product_id, round(sum(u.units*p.price)/sum(u.units),2) average_price 
from 
    Prices p left join UnitsSold u 
on 
    p.product_id=u.product_id 
-- and
where 
    u.purchase_date between p.start_date and p.end_date 
group by 
    u.product_id;

2.17 - 项目员工 I

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sql">select
    -- round(sum(e.experience_years)/count(*),2) 
    p.project_id,round(avg(e.experience_years),2) average_years
from 
    Project p left join Employee e
on 
    p.employee_id=e.employee_id 
group by 
    p.project_id;

2.18 - 各赛事的用户注册率

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sql">-- 注册率=注册用户数/所有用户数
select
    r.contest_id,round(100*count(*)/(select count(*) from Users),2) percentage 
from 
    Register r
group by 
    r.contest_id
order by
     percentage desc,r.contest_id ASC;

2.19 - 查询结果的质量和占比

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sql">-- round(avg(rating<3)*100,2)=round(avg(if(rating<3,1,0))*100,2) 
select 
    query_name,round(avg(rating/position),2) quality,round(avg(if(rating<3,1,0))*100,2) poor_query_percentage 
from
    Queries
group by
    query_name;

2.20 - 每月交易 I

在这里插入图片描述
在这里插入图片描述

sql">--  考点:日期转换格式
--  date_format(trans_date,'%Y-%m')

select 
    date_format(trans_date,'%Y-%m') month,
    country,
    count(*) trans_count,
    sum(if(state='approved',1,0)) approved_count,
    sum(amount) trans_total_amount,
    sum(if(state="approved",amount,0)) approved_total_amount
from
    Transactions 
group by
    month,country;

2.21 - 即时食物配送 II

在这里插入图片描述
在这里插入图片描述

sql">-- sum(if(order_date=customer_pref_delivery_date,1,0))/count(*)=sum(order_date=customer_pref_delivery_date)/count(*)
-- count(*),表示数据的行数,如果有分组,为分组后数据的行数


select 
    round(100*sum(if(order_date=customer_pref_delivery_date,1,0))/count(*),2) immediate_percentage 
from
    Delivery 
where 
    (customer_id,order_date) in 
        (select
            customer_id,min(order_date)
        from 
            Delivery
        group by
            customer_id);

2.22 - 游戏玩法分析 IV

  • 考点: 聚合函数
    在这里插入图片描述
    在这里插入图片描述
sql"># 日期相加 date_add(min(event_date),INTERVAL 1 DAY) 
select 
    round(count(distinct player_id)/(select count(distinct player_id) from Activity),2) fraction  
from
    Activity 
where
    -- 如果日期加一天的数据能在表中查到,说明连续登录了两天
    (player_id,event_date) in 
    (select 
        player_id,date_add(min(event_date),INTERVAL 1 DAY) 
    from 
        Activity 
    GROUP BY
        player_id
     );

http://www.niftyadmin.cn/n/5535267.html

相关文章

Django 对模型创建的两表插入数据

1&#xff0c;添加模型 Test/app8/models.py from django.db import modelsclass User(models.Model):username models.CharField(max_length50, uniqueTrue)email models.EmailField(uniqueTrue)password models.CharField(max_length128) # 使用哈希存储密码first_name …

sublime 3 背景和字体颜色修改

sublime 4 突然抽风&#xff0c;每次打开都显示 “plugin_host-3.3 has exited unexpectedly, some plugin functionality won’t be available until Sublime Text has been restarted” 一直没调好&#xff0c;所以我退回到sublime 3了。下载好了软件没问题&#xff0c;但是一…

【Python画图-驯化seaborn】一文搞懂seaborn中的小提琴图实践、技巧、原理

【Python画图-驯化seaborn】一文搞懂seaborn中的小提琴图实践、技巧、原理 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内容…

【Sping Boot2】笔记

Spring Boot 2入门 如何创建一个Spring Boot的Web例子&#xff1f;1.如何创建一个Spring Boot项目1.1 使用Maven构建一个Spring Boot 2项目1.1.1创建Maven工程注&#xff1a;Maven项目结构&#xff1a; 1.1.2引入SpingBoot相关依赖依赖注意事项&#xff1a; 1.1.3创建主类1.1.4…

mybatis mapper.xml 比较运算符(大于|小于|等于)的写法: 转义和<![CDATA[]]>

文章目录 引言I 使用xml 原生转义的方式进行转义II 使用 <![CDATA[ 内容 ]]>引言 应用场景:查询时间范围 背景:在 *.xml 中使用常规的 < > = <= >= 会与xml的语法存在冲突 <![CDATA[]]> 比 转义符 来的繁琐 <![CDATA[]]> 表示xml解析器忽略…

【计算机网络】网络层(作业)

【一】 1、某主机的 IP 地址为 166.199.99.96/19。若该主机向其所在网络发送广播 IP 数据报&#xff0c; 则目的地址可以是&#xff08;D&#xff09;。 A. 166.199.99.255B. 166.199.96.255C. 166.199.96.0D. 166.199.127.255 解析&#xff1a; 166.199.99.96/19166.199.0…

gcc: warning: -Wunused-function;加了选项,为什么就不报警告呢?

文章目录 问题clang的编译而使用gcc是就不报问题分析原因如果是非static的函数问题 下面这个代码段,其中这个函数hton_ext_2byte,在整个程序里就没有使用。 static inline uint16_t hton_ext_2byte(uint8_t **p) {uint16_t v;******return v;

vue动态组件与插件到底是什么?

background: yellow; } 子组件1 <ul><li v-for"item of items" :key"item"><input type"checkbox" />{{ item }}</li></ul>子组件2 PostMail 子组件3 RecycleBin ![在这里插入图片描述](https://img-blog.csdni…