好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

oracle实现按天,周,月,季度,年查询排序方法

oracle按天,周,月,季度,年查询排序

?

1

2

3

4

5

天 --to_char(t.start_time,'YYYY-MM-DD')

周 --to_char(t.start_time,'YYYY'),to_char(t.start_time,'IW')

月度 --to_char(t.start_time,'YYYY-MM')

季度 --to_char(t.start_time,'YYYY'),to_char(t.start_time,'Q')

年度 --to_char(t.start_time,'YYYY')

按天查询

?

1

2

3

4

select to_char(t.start_time, 'YYYY-MM-DD' ) day , count (*) from test t

where to_char(t.start_time, 'YYYY' )= '2019' --条件限制

group by to_char(t.start_time, 'YYYY-MM-DD' ) --分组

order by to_char(t.start_time, 'YYYY-MM-DD' ) --排序

按周查询

?

1

2

3

4

select to_char(t.start_time, 'YYYY' ) year ,to_char(t.start_time, 'IW' ), count (*) from test t

where to_char(t.start_time, 'YYYY' )= '2019' --条件限制

group by to_char(t.start_time, 'YYYY' ) year ,to_char(t.start_time, 'IW' ) --分组

order by to_char(t.start_time, 'YYYY' ) year ,to_char(t.start_time, 'IW' ) --排序

按月度查询

?

1

2

3

4

select to_char(t.start_time, 'YYYY-MM' ) , count (*) from test t

where to_char(t.start_time, 'YYYY' )= '2019' --条件限制

group by to_char(t.start_time, 'YYYY-MM' ) --分组

order byto_char(t.start_time, 'YYYY-MM' ) --排序

按季度查询

?

1

2

3

4

select to_char(t.start_time, 'YYYY' ) year ,to_char(t.start_time, 'Q' ), count (*) from test t

where to_char(t.start_time, 'YYYY' )= '2019' --条件限制

group by to_char(t.start_time, 'YYYY' ) ,to_char(t.start_time, 'Q' ) --分组

order byto_char(t.start_time, 'YYYY' ) ,to_char(t.start_time, 'Q' ) --排序

按年度查询

?

1

2

3

4

select to_char(t.start_time, 'YYYY' ) year , count (*) from test t

where to_char(t.start_time, 'YYYY' )= '2019' --条件限制

group by to_char(t.start_time, 'YYYY' ) --分组

order by to_char(t.start_time, 'YYYY' ) --排序

知识点扩展:oracle 实现按天,周,月,季度,年查询统计数据

这里提供了一种方法,挺不错oracle 实现按周,月,季度,年查询统计数据 。

还在网上看到用trunc来搞也可以,下面是个例子,两句SQL效果一样的.

id有重复的,所以group by搞了两个字段.

只在Oracle数据库里试过,其它库没试过。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

create table CONSUMER_ACC

  (

  ID VARCHAR2(50) not null ,

  ACC_NUM VARCHAR2(10),

  DATETIME DATE

  )

 

  select t.id,trunc(t.datetime, 'mm' ) as d, sum (t.acc_num) as n

  from CONSUMER_ACC t

  --where

  group by t.id,trunc(t.datetime, 'mm' )

  order by n desc ;

  select t.id,to_char(t.datetime, 'mm' ) d , sum (t.acc_num) n

  from CONSUMER_ACC t

  --where

  group by t.id,to_char(t.datetime, 'mm' )

  order by n desc

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

//按天统计 

select count (dataid) as 每天操作数量, sum ()

from

where

group by trunc(createtime, 'DD' ))

//按自然周统计 

select to_char( date , 'iw' ), sum () 

from

where

group by to_char( date , 'iw' ) 

//按自然月统计 

select to_char( date , 'mm' ), sum () 

from

where

group by to_char( date , 'mm' ) 

//按季统计 

select to_char( date , 'q' ), sum () 

from

where

group by to_char( date , 'q' ) 

//按年统计 

select to_char( date , 'yyyy' ), sum () 

from

where

group by to_char( date , 'yyyy' )

总结

以上所述是小编给大家介绍的oracle实现按天,周,月,季度,年查询排序方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

原文链接:https://blog.51cto.com/5776643/2442481

查看更多关于oracle实现按天,周,月,季度,年查询排序方法的详细内容...

  阅读:35次