网站首页 > 文章中心 > 其它

oracle如何分组统计

作者:小编 更新时间:2023-10-09 08:26:52 浏览量:265人看过

oracle分组统计(group)

select pkdz.id ,zsmx.id as zsmxid,pzty.typh_q, pzty.typh_z, pzty.szsk, skxx.swjgid,zsmx.je from pz_pztyjl pzty

join pz_pkdzjl pkdz on (pzty.pkdzjl_id = pkdz.id )

join sk_hd_zsmx zsmx on ( pkdz.id = zsmx.tyjks_id )

join sk_zt_skxx skxx on (zsmx.skxx_id = skxx.id)

order by pkdz.id asc, zsmx.id asc

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

Oracle按不同时间分组统计的sql

如下表table1:

日期(exportDate)

数量(amount)

--------------

-----------

-10

注意:为了显示更直观,如下查询已皆按相应分组排序

①按年份分组

select

to_char(exportDate,'yyyy'),sum(amount)

from

table1

group

by

to_char(exportDate,'yyyy');

年份

数量

-----------------------------

to_char(exportDate,'yyyy-mm'),sum(amount)

to_char(exportDate,'yyyy-mm')

order

to_char(exportDate,'yyyy-mm');

月份

to_char(exportDate,'yyyy-Q'),sum(amount)

to_char(exportDate,'yyyy-Q')

to_char(exportDate,'yyyy-Q');

季度

------------------------------

to_char(exportDate,'yyyy-IW'),sum(amount)

to_char(exportDate,'yyyy-IW')

to_char(exportDate,'yyyy-IW');

PS:Oracle按时间段分组统计

想要按时间段分组查询,首先要了解level,connect

by,oracle时间的加减.

关于level这里不多说,我只写出一个查询语句:

----level

是一个伪例

level

dual

connect

=10

---结果:

oracle时间的加减看看试一下以下sql语句就会知道:

sysdate

-----结果减去1

小时

sydate-(level-1)

level=10

---结果是10间隔1天的时间

下面是本次例子:

dt,

count(satisfy_degree)

as

num

T_DEMO

i

,

(select

-

(level-1)

*

dt

=

①.0)

d

where

i.satisfy_degree='satisfy_1'

and

i.insert_timedt

i.insert_time

d.dt

例子中的sysdate

也就是两天的时间间隔分组查询

自己实现例子:

create

table

A_HY_LOCATE1

(

MOBILE_NO

LOCATE_TYPE

AREA_NO

CREATED_TIME

DATE,

AREA_NAME

);

mobile_no,area_name,max(created_time

),dt,

count(*)

a_hy_locate1

i.locate_type

i.created_timedt

i.created_time

mobile_no,area_name,d.dt

另外一个方法:

--按六小时分组

trunc(to_number(to_char(created_time,

/

t_test

created_time

trunc(sysdate

Oracle如何对一个多值字段进行分组统计

如果没有重复或只算一个的话可以这么统计,不过效率是慢点....

userID,(select

count(1)

info

userID

like

'%'

||

trim(a.userID)

'%')

user

a;

关于oracle怎么做多次分组

以NO字段为主,进行分组.

select a.no,sum(a.金额) from table a group by a.no

同一个NO,会对应不同的姓名.

select a.no,a.姓名,sum(a.金额) from table a group by a.no,a.姓名

看不懂

目标语句:当收费醒目包含'盐'这一项,则统计no='10' 且 姓名='张三',所有收费项目对...

select a.项目,sum(a.金额) from table a where a.收费项目= '1' and a.no = '10' and a.姓名='张三' group by a.项目

以上就是土嘎嘎小编为大家整理的oracle如何分组统计相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章