oracle怎么分组字段 oracle中分组函数有哪些

oracle 通过两个字段分组??help?。〖奔奔奔保 。?/h2>select 分组字段1oracle怎么分组字段 , 分组字段2oracle怎么分组字段,聚合函数
from 表名 where 条件
group by 分组字段1oracle怎么分组字段,分组字段2
oracle怎么根据一个数分组首先你的starttime是什么类型的,数字?字符?还是时间?
要出来08:00-08:30这种结果简单,只要查询的时候加一个关联就可以,
比如select starttime||'-'||endtime from table.当然试过是时间的字段类型,比如date什么的,那就转换成字符型的,反正现在看来主要是字符型 。
再说分组,分组可以用case when手动分组 。
按照你给的图片个人觉得可以这么分
select case when starttime=0800 and endtime=10:00 then 1
whenstarttime=0900 and endtime=12:00 then 2
whenstarttime=1330 and endtime=15:30 then 3
whenstarttime=1530 and endtime=17:30 then 4
end 分组,starttime||'-'||endtime from table
这个语句中的具体写法,可能会因为数据类型的原因什么的,导致语句不能直接用,需要转换一下数据类型,但是大体上的意思和写法就是这样了 。
oracle里面怎么多个字段分组排序分组排序用group byoracle怎么分组字段,若需要条件则在后面加having 。
多个字段的话用order byoracle怎么分组字段,比如:order by a,b
order by 可以让表按a排序oracle怎么分组字段,遇到重复的再按b再排一次序 , 做到把想要的字段与其他无关字段分开比较 。
oracle中怎么把按' '拆分字段进行分组oracle 数据库拆分字段的实现方法:
用正则表达式拆分某一个字段 , 比如有a,b,c,d,e
sql写法如下:
select regexp_substr('a,b,c,d,e,','[^,] ',1,rownum)
from dual connect by rownum=length(regexp_replace('a,b,c,', '[^,]', null))
结果:
执行结果如下:
1 a
2 b
3 c
4 d
5 e
Oracle如何对一个多值字段进行分组统计CREATETABLEinfo (
usersvarchar(100)
);
INSERT INTO info VALUES('userA@userB@userC');
INSERT INTO info VALUES('userB@userC@userD');
INSERT INTO info VALUES('userC@userD@userE');
COLUMN "用户" FORMAT A15
SELECT
to_char(strvalue) as "用户",
count(*) AS "用户数"
FROM
info,
table(fn_split( info.users,'@'))
GROUP BY
to_char(strvalue)
ORDER BY
1;
用户用户数
--------------- ----------
userA1
userB2
userC3
userD2
userE1
上面这样的效果,是否满足你的需求?
如果满足的话,你再往下看 , 下面是 存储过程的相关代码
Oracle 需要首先在数据库中,创建好 类型 与 函数 。
来实现一个split 功能的处理 。
-- 定义一个对象类型.
CREATE OR REPLACE TYPE ty_row_str_split as object (strValue VARCHAR2 (4000));
/
-- 定义一个 表/数组类型,内容是前面定义的那个对象.
CREATE OR REPLACE TYPE ty_tbl_str_split IS TABLE OF ty_row_str_split;
/
--------------------
-- 字符分割函数.
-- 参数1:被分割的源字符串
-- 参数2:用于拆分的字符串 。
--------------------
CREATE OR REPLACE FUNCTION fn_split(
p_strIN VARCHAR2,
p_delimiter IN VARCHAR2)
RETURN ty_tbl_str_split IS
jINT := 0;
iINT := 1;
-- 被分割的源字符串 的长度.
lenINT := 0;
-- 分隔字符串的长度
len1INT := 0;
-- 暂存的中间每一个单元的文本信息.
strVARCHAR2(4000);
-- 预期返回结果.
str_split ty_tbl_str_split := ty_tbl_str_split();
BEGIN
-- 被分割的源字符串 的长度.
len:= LENGTH(p_str);
-- 分隔字符串的长度.
len1 := LENGTH(p_delimiter);
-- 遍历 被分割的源字符串.
WHILE jlen LOOP
-- 在被分割的源字符串中,查询 分隔字符串.
j := INSTR(p_str, p_delimiter, i);
IF j = 0 THEN
-- j=0 意味着没有找到.
-- 可以理解为是查询到最后一个单元了.
-- 设置 j := len,让外部的循环处理可以结束了.
j:= len;
-- 获取最后一个单元的内容.
str := SUBSTR(p_str, i);
-- 结果追加一行.
str_split.EXTEND;
-- 设置结果内容.
str_split(str_split.COUNT) := ty_row_str_split(strValue = https://www.04ip.com/post/str);
IF i = len THEN
EXIT;
END IF;
ELSE
-- 如果在被分割的源字符串中,找到了 分隔字符串.
-- 首先,获取分割的内容.
str := SUBSTR(p_str, i, j - i);
-- 然后设置索引 , 下一次再查找的时候,从指定的索引位置开始(不是从0开始找了)
i := jlen1;
-- 结果追加一行.
str_split.EXTEND;
-- 设置结果内容.
str_split(str_split.COUNT) := ty_row_str_split(strValue = https://www.04ip.com/post/str);
END IF;
END LOOP;
RETURN str_split;
END fn_split;
/
函数创建完毕以后,可以开始做查询的处理.
SQL select to_char(strvalue) as Value from table(fn_split('aa,bb,cc',','));
VALUE
-------------------------------------------------------------------------------
aa
bb
cc
【oracle怎么分组字段 oracle中分组函数有哪些】关于oracle怎么分组字段和oracle中分组函数有哪些的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读