回答

收藏

一年中如何查询?GROUP BY

技术问答 技术问答 390 人阅读 | 0 人回复 | 2023-09-14

我正在使用Oracle SQL Developer。我基本上有一张包含各列的图片表:
2 \' r% R5 M" @[DATE_CREATED(日期),NUM_of_PICTURES(int)]
* S" z# C, q* x. ^如果我执行select *,输出类似于以下内容:
" v2 r- M' \# _# W7 A01-May-12    1202-May-12    1503-May-12    09......01-Jun-12    20...etc.我试图总结这些图片的总和MONTHLY而非数字DAILY中。& S# B2 k7 b2 m& l+ L5 q' j
我试着做类似的事:4 [+ C. |, V+ `* q* l
select Month(DATE_CREATED),sum(Num_of_Pictures))from pictures_tablegroup by Month(DATE_CREATED);输出错误:4 S  i5 [3 u5 j% {) T
ORA-00904: "MONTH": invalid identifier00904. 00000 -  "%s: invalid identifier"*Cause:    *Action:Error at Line: 5 Column: 9我的月功能错了吗?
1 ^) V* ^# J& Y. X2 L# O8 P. v2 B4 {                                                                ' O* {" ?0 r) x# Q' y* I3 K
    解决方案:                                                                . N) [4 \* Z. ^2 T0 ^
                                                                我倾向于在输出中包括年份。
9 C/ I/ h5 |( a* c4 ~select to_char(DATE_CREATED,'YYYY-MM'),sum(Num_of_Pictures)from pictures_tablegroup by to_char(DATE_CREATED,'YYYY-MM')order by 1另一种方法(更标准)SQL):7 p6 o5 x3 f" `
select extract(year from date_created) as yr,extract(month from date_created) as mon,      sum(Num_of_Pictures)from pictures_tablegroup by extract(year from date_created),extract(month from date_created)order by yr,mon;记住顺序,因为你可能希望这些顺序,不能保证分组后返回的顺序。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则