今天做两个复杂的子查询练习,答案仅供参考。

1、求最大销售数量(100)有那几个月份(全部数据)

1.1、求销售数量的最大值

select max(销售数量) as 销售数量 from [sheet5$]

1.2、提取最大销售数量的月份

select 月份 from [sheet5$]

where 销售数量=

(select max(销售数量) as 销售数量 from [sheet5$])

1.3、根据月份提取月份所有数据

select a.* from

[sheet5$] a,

(select 月份 from [sheet5$] where 销售数量=(select max(销售数量) as 销售数量 from [sheet5$])) b

where a.月份=b.月份

2、获取数据集的众数

众数是指一组数字中出现最频繁的数字。例如{4,5,6,6,6,7,8,9,2}的众数是6.Excel中有函数Mode返回众数,但是SQL中没有这个函数。

对个数字进行计数,并降序排列

select 众数,count(*) as 计数 from [sheet7$] group by 众数 order by count(*) desc

如果只有一个众数或者只取第一个众数,则用top 1提取数据。

select top 1 众数

from

(select 众数,count(*) as 计数 from [sheet7$] group by 众数 order by count(*) desc)

通用的做法是提取计数的最大值,然后再提取众数号码。

select 众数 from

(select 众数,count(*) as 计数 from [sheet7$] group by 众数)

where 计数=

(

select max(计数) from

(select 众数,count(*) as 计数 from [sheet7$] group by 众数)

)

更改数据源,让号码8也有3个。

然后刷新表格

查看原文 >>
相关文章