精华内容
下载资源
问答
  • SQL查询众数与中位数

    千次阅读 2020-09-24 19:09:08
    注意:本文均为SQL Server代码,其他数据库可能需要根据...# 向成绩表插入数据: insert into #grade values (1,'Kevin',85), (2,'Mary',59), (3,'Andy',60), (4,'Tony',79), (5,'Lucky',90), (6,'Bob',60), (7,'T

    注意:本文均为SQL Server代码,其他数据库可能需要根据对应语法进行修改

    创建测试用表:

    # 创建学生成绩表:
    create table #grade(
    id int,
    name varchar(10),
    score int
    )
     
    # 向成绩表中插入数据:
    insert into #grade values
    (1,'Kevin',85),
    (2,'Mary',59),
    (3,'Andy',60),
    (4,'Tony',79),
    (5,'Lucky',90),
    (6,'Bob',60),
    (7,'Tom',100),
    (8,'Lucy',90),
    (9,'Cherry',92),
    (10,'Ada',99),
    (11,'Alice',83),
    (12,'Amy',82);
    

    查询一组数据的众数

    方法1:
    1)首先对数据按照值的不同进行分组,并对每组中的数据进行计数,再根据计数的大小进行降序排序;
    2)上述1)中结果集的第一行即要求取的众数所在的行。如果是多个众数则需要输出所有排名计数相等的列

    方法一的代码为:

    select  top(1) WITH TIES
    score,
    count(score) as sc_count 
    from #grade 
    group by score 
    order by sc_count desc
    
    --只有一个众数也可以使用:
    select top(1) score,count(score) as sc_count from #grade 
    group byscore  order by sc_count desc
    

    top(1) WITH TIES会返回所有最高次数的记录。而top(1)只会返回一行记录,如果后续行数的数字有相同的数值也不会返回,故只适用于一个众数的情况。

    同时我们也可以使用窗口函数进行排序并筛选

    select score
    from (
    select score,
    dense_rank() over(order by number desc) as rnk
    from (
    select score, count(score) as number
    from #grade
    group by score
    ) x
    ) y
    where rnk = 1
    

    方法2:
    1)首先对数据按照值的不同进行分组,并对每组中的数据进行计数;
    2)使用max函数找出统计个数的最大值及其对应的被统计值,此被统计值就是要求的众数。

    具体代码为:

    with pro_group as
    (select score,count(score) as number from #grade group by score)
    select score,number from pro_group where number=(select max(number) from pro_group)
    

    或者使用子查询的方法:

    select score,number 
    from (select score,count(score) as number from #grade group by score)b
    where number=(select max(number) from 
    (select score,count(score) as number from #grade group by score)d
    )
    

    查询一组数据的中位数

    方法一:
    核心思想是对于一组要求其中位数的数据,无论数据的总行数是奇数还是偶数,都取这组数据排序后最中间的两个数的平均值作为中位数。当数据的总行数是奇数时,数据经排序后最中间的数取两次以计算平均值。

    select avg(score)
    from
    (
      select score,
      count(*) over() total,
      row_number() over(order by score) rn
      from #grade
    ) g
    where g.rn in (
    floor(cast((total+1) as decimal)/2),ceiling(cast((total+1) as decimal)/2)
    )
    

    这里使用到两个四舍五入的函数:
    CEILING() - 返回最小的整数,使这个整数大于或等于指定数的数值运算。即向上取整
    FLOOR() - 返回最大整数,使这个整数小于或等于指定数的数值运算。即向下取整

    方法二:
    对奇数与偶数的个数分情况处理:

    select avg(score)
    from (
      select score,
      count(*) over() total,
      cast(count(*) over() as decimal)/2 mid,
      ceiling(cast(count(*)over() as decimal)/2) next,
      row_number() over(order by score) rn
      from #grade
    ) x
    where ( total%2 = 0 and rn in ( mid, mid+1 ))
          or ( total%2 = 1 and rn = next)
    

    对于其他的数据库的写法,可以参考一下这个链接:
    https://geek-docs.com/sql/sql-examples/sql-to-calculate-the-median.html

    个人公众号:Smilecoc的杂货铺,欢迎关注!
    在这里插入图片描述

    展开全文
  • 众数与中位数》教学课件.ppt
  • 初中数学众数与中位数PPT课件.pptx
  • 初中数学八年级上册众数与中位数PPT学习教案.pptx
  • 北师大初中数学八年级上册众数与中位数PPT学习教案.pptx
  • SQL中求字段的众数中位数

    千次阅读 2020-10-27 12:02:01
    SQL中求字段中的中位数,简单理解,简单方法 如果数据量为奇数,则是第 (n+1)/2 条,偶数则为 n/2 和 (n+2)/2条的和的平均值。SQL如下 select * from ( select * ,row_number() over( order by money ) top...

    SQL中求字段中的众数

    两种方法

    SELECT name ,count(1) a from  db001.table001 group by name 
    having count(1) >=  all( select count(1) from table001 group by name );
    
    SELECT name ,count(1) a from  db001.table001 group by name 
    having count(1)>=  (select max(a) from ( select count(1) a  from table001 group by name )t );
    

    SQL中求字段中的中位数,简单理解,简单方法

    如果数据量为奇数,则是第 (n+1)/2 条,偶数则为 n/2 和 (n+2)/2条的和的平均值。SQL如下

    select * from 
    (
    	select 
    		*
    		,row_number() over( order by money ) top
    		,count(*) over( ) cnt
    	from table001
    )a  
    where if( cnt%2=0, top in (cnt/2,(cnt + 2)/2), top = (cnt + 1)/2) 
    

    里面的SQL查询如下:

    在这里插入图片描述

    结果图如下:

    在这里插入图片描述

    展开全文
  • JAVA求数组的平均数,众数中位数

    千次阅读 2021-07-03 13:55:48
    中位数中位数是指把一组数据从小到大排列,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以2,所得的结果就是中位数众数众数是指一组数据中出现...

    目录

    1、名称解释

    2、实例代码 

    (1)求平均数

    (2)求中位数

    (3)求众数


    1、名称解释

    平均数:是指一组数据之和,除以这组数的个数,所得的结果就是平均数。

    中位数:中位数是指把一组数据从小到大排列,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以2,所得的结果就是中位数。

    众数:众数是指一组数据中出现次数最多的那个数,众数可以是0个或多个。

    2、实例代码 

    (1)求平均数

    public static double mean(int[] arr) {
    		int sum = 0;
    		for (int i = 0; i < arr.length; i++) {
    			sum += arr[i];
    		}
    		return (double) sum / arr.length;
    	}

    (2)求中位数

    public static double median(int[] arr) {
    		// 先排序
    		Arrays.sort(arr);
    		// 如果是偶数,则为中间两个数的和除以2
    		if (arr.length % 2 == 0) {
    			return (double) ((arr[arr.length / 2 - 1] + arr[arr.length / 2])) / 2;
    		}
    		// 否则就是中间这个数
    		return arr[arr.length / 2];
    	}

    (3)求众数

    public static List<Integer> mode(int[] arr) {
    		Map<Integer, Integer> map = new HashMap<>();
    		Set<Map.Entry<Integer, Integer>> set = map.entrySet();
    		List<Integer> list = new ArrayList<>();
    		// 结果
    		List<Integer> res = new ArrayList<>();
    		// 统计元素出现的次数,存入Map集合
    		for (int item : arr) {
    			map.put(item, map.getOrDefault(item, 0) + 1);
    		}
    		// 将出现的次数存入List集合
    		map.forEach((k, v) -> {
    			list.add(v);
    		});
    		//集合排序
    		Collections.sort(list);
    		// 得到最大值
    		int max = list.get(list.size() - 1);
    		// 根据最大值获取众数
    		for (Map.Entry<Integer, Integer> entry : set) {
    			if (entry.getValue() == max) {
    				res.add(entry.getKey());
    			}
    		}
    		return res;
    	}

    展开全文
  • 查找众数中位数

    2021-10-11 23:04:58
    查找众数中位数 题目描述: 1.众数是指一组数据中出现次数量多的那个数,众数可以是多个 2.中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数, 如果这组数据...

    查找众数及中位数

    题目描述:
    1.众数是指一组数据中出现次数量多的那个数,众数可以是多个
    2.中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,
    如果这组数据的个数为偶数,那就把中间的两个数之和除以 2,所得的结果就是中位数
    3.查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数
    输入描述:
    输入一个一维整型数组,数组大小取值范围 0 < N < 1000,数组中每个元素取值范围 0 < E < 1000
    输出描述:
    输出众数组成的新数组的中位数
    示例 1:
    输入
    10 11 21 19 21 17 21 16 21 18 15
    输出
    21

    #include<iostream>
    #include<vector>
    #include<algorithm>
    #include<unordered_map>
    using namespace std;
    int main(){
    	int input;
    	vector<int> v;
    	vector<int> new_v;
    	unordered_map<int,int> vnums;
    	int cnt=0;
    	while(cin>>input){ //这里需要输入一个非int类型来跳出输入循环
    		v.push_back(input);
    	}
    	for(auto i:v){
    		vnums[i]++;
    	}
    	for(auto i:vnums){
    		if(cnt<i.second){
    			cnt=i.second;
    		}
    	}
    	for(auto i:vnums){
    		if(i.second==cnt){
    			new_v.push_back(i.first);
    		}
    	}
    	sort(new_v.begin(),new_v.end());
    	if(new_v.size()!=0 && new_v.size()%2==0){
    		cout<<(new_v[new_v.size()/2]+new_v[new_v.size()/2-1])/2;
    	}
    	else if(new_v.size()%2!=0){
    		cout<<new_v[new_v.size()/2];
    	}
    	else {
    		cout<<endl;
    	}
    	return 0;
    }
    
    展开全文
  • 求N个整数的平均数、众数中位数 题目描述 求N个整数的平均数,众数中位数。 输入 第一行为整数N(5 <= N <= 10000 ) 第二行为空格隔开的N个数Ai(0 <= Ai <= 100 ) 输出 输出空格隔开的平均数 众数 ...
  • 众所周知,数据分析分析的是什么,自然是有价值的数据,比如说一些有意义的数据、一些有特性的数据。
  • 输入无符号整数序列(不多于500个整数,每个整数不大于150),计算序列的众数中位数众数是指出现次数最多的那个数;如果有多个数出现的次数都达到最多,则取最先出现的数为众数;如果所有的数都相等,则众数由...
  • * * @描述:集中趋势量数:计算中位数 &lt;br/&gt; * * @方法名: median &lt;br/&gt; * * @param in &lt;br/&gt; * * @return &lt;br/&gt; * * @返回类型 double &lt;...
  • 一组数据中如果有特别大的数或特别小的数时,一般用中位数 一组数据比较多(20个以上),范围比较集中,一般用众数 其余情况一般还是平均数比较精确 一、联系区别:  1、平均数是通过计算得到的,因此它会因...
  • 题目34 众数中位数

    2021-10-14 17:15:33
    1.众数是指一组数据中出现次数多的数 众数可以是多个 2.中位数是指把一组数据从小到大排列,最中间的那个数, 如果这组数据的个数是奇数,那最中间那个就是...输出众数组成的新数组的中位数 示例一 输入: 10 11 21..
  • 文章目录算数平均数、中位数众数和几何平均数 算数平均数、中位数众数和几何平均数 统计数据时经常用到的几种数的比较: 算数平均数 中位数 众数 几何平均数 英文名 Arithmetic mean Median Mode ...
  • 在讨论1的基础上,结合案例分析整理众数中位数、平均数的特点及其应用。 一、三个衡量指标的特点 ①众数特点:众数体现了样本数据的最大集中点, 但它对其它数据信息的忽视使得无法客观地反映总体特征。众数容易...
  • 中位数的作用算术平均数相近,也是作为所研究数据的代表值。在一个等差数列或一个正态分布数列中,中位数就等于算术平均数。 在数列中出现了极端变量值的情况下,用中位数作为代表值要比用算术平均数更好,...
  • 八年级数学下册中位数众数中位数众数新新人教PPT课件.pptx
  • 八年级数学下册中位数众数中位数众数新新人教PPT学习教案.pptx
  • 八年级数学下册中位数众数中位数众数新新人教PPT教案学习.pptx
  • print("中位数:",(lis[int(len(lis) / 2 - 1)] + lis[int(len(lis) / 2)]) / 2) 功能五:极差 极差又称范围误差或全距(Range),以R表示,是用来表示统计资料中的变异量数(measures of variation),其最大值...
  • MySQL查询一组数据的众数中位数

    千次阅读 2019-03-05 14:00:41
    2)上述1)结果集的第一行即要求取的众数所在的行。 方法2:适用于一组数据有一个或多个众数的情况 1)首先对数据按照值的不同进行分组,并对每组的数据进行计数; 2)使用max函数找出统计个的...
  • 0.75) # 得到数组 a 的下四分位数 19.0 pandas 可以使用 median,quantile,mode 函数分别计算中位数,分位数与众数。例如: >>> df = pd.DataFrame(np.array([[85, 68, 90], [82, 63, 88], [84, 90, 88]]), ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,461
精华内容 4,184
关键字:

众数与中位数