求Oracle分组统计数量的sql怎么写,需求如下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求Oracle分组统计数量的sql怎么写,需求如下相关的知识,希望对你有一定的参考价值。

如图,total字段统计查询总条数,SSBM字段后面括号里统计的数量为SSBM分组统计的数量,比如02有两条记录括号里就是2,03有一条记录括号里就是1(图中显示的也是总条数),这个查询语句该怎么写,先拜谢大神

造了点数据,不知道是这个意思不

create table test
(total int,
ssbm varchar2(20));

insert into test values (5,\'02(5)\');
insert into test values (5,\'02(5)\');
insert into test values (5,\'04(5)\');
insert into test values (5,\'04(5)\');
insert into test values (5,\'03(5)\');

commit;

查询:

select ssbm||\'(\'||cnt||\')\' from (select substr(ssbm,1,instr(ssbm,\'(\')-1) ssbm,count(*) cnt from test group by substr(ssbm,1,instr(ssbm,\'(\')-1)) t

结果:

参考技术A select T.total, (A.ssbm || '(' || to_char(A.cnt_ssbm) || ')') as ssbm, T.id from T,(select substr(ssbm,1,2) as ssbm, count(ssbm) as cnt_ssbm from T group by substr(ssbm,1,2)) A where A.ssbm = substr(T.ssbm,1,2);

这样写再试一下。本回答被提问者采纳

分组数据怎么求中位数

可以用Excel实现,具体的操作方法和步骤如下:

1、第一步,打开Excel文档,如下图所示,然后进入下一步。

2、其次,完成上述步骤后,在文档中列出一组数据,如下图所示,然后进入下一步。

3、接着,完成上述步骤后,输入公式“=  MEDIAN(E7:E12)”,如下图所示,然后进入下一步。

4、最后,完成上述步骤后,按Enter键以获取该组数据的中位数,如下图所示。这样,问题就解决了。

参考技术A 将这组数据从大到小(或从小到大)的顺序排列,若这些数据的总个数是奇数,那么这组数据中间的那个数就是这组数据的中位数。(如:59634这组数据中,6就是他的中位数)如果这组数据的总个数是复数,那么它的中位数就是这组数据中的中间两个数之 参考技术B 运用公式:M= L+ (∑f/2-s)/2Xn;
其中,L是中位数所在组下限;s为累计到中位数前一组的次数;n为中位数所在组组距;f为中位数所在组次数
参考技术C

    找到中位数组

    50/2与50/2+1的算数平均数=25.5,中位数组是120-125(件),14(人)

    在中位数组中定位中位数

    公式(略)

    120+[50/2-(3+5+8)]/14*5=123.2

以上是关于求Oracle分组统计数量的sql怎么写,需求如下的主要内容,如果未能解决你的问题,请参考以下文章

oracle 查询一段时间内每一天的统计数据sql怎么写

SQL: 一般情况按年分组,特殊年份按指定日期分组,SELECT语句怎么写?

Oracle查询语句怎么样按天分组

Oracle数据库按时间进行分组统计数据的方法

Oracle中怎么样把字段相同的值加在一起

oracle行转列sql怎么写?