oracle数据库中如何达到像mysql数据库中group by 那种去重的效果..求大神解答

作者&投稿:禹卖 (若有异议请与网页底部的电邮联系)
求大神 mysql数据库用GROUP_CONCAT+group by查询出来的数据有重复累加的~

出现这种情况一般都是主子表是一对关系,join时主表就会关联上多条记录显示重复数据。这时如果select数据是在主表,统计就有问题的了。

1、在mysql环境,创建数据库表,
create table test_data1(id int, name VARCHAR(20), day VARCHAR(20))

2、插入测试数据,
insert into test_data1 values(1,'liu',1);
insert into test_data1 values(2,'liu',3);
insert into test_data1 values(3,'wang',1);
insert into test_data1 values(4,'wang',2);
insert into test_data1 values(4,'wang',4);

3、查询表中数据,select * from test_data1;

4、编写目标sql;
select name,
max(case when day=1 then 1 end) d_1,
max(case when day=2 then 2 end) d_2,
max(case when day=3 then 3 end) d_3,
max(case when day=4 then 4 end) d_4
from test_data1 t group by name

oracle和mysql,group by是由区别的。
oracle的gruop by 后跟的必须是select查询出的字段
而且group by语句中select指定的字段必须是“分组依据字段”,其他字段若想出现在select中则必须包含在聚合函数中
聚合函数比如:
sum(列名) 求和     
max(列名) 最大值     
min(列名) 最小值     
avg(列名) 平均值     
count(列名) 统计记录数 注意和count(*)的区别
select a.app_name as dealInfoId,
SUM(CASE
WHEN l.ser_type = '日常客服' then
1
else
0
end) as rc,
SUM(CASE
WHEN l.ser_type = '温馨提示' then
1
else
0
end) as wx,
SUM(CASE
WHEN l.ser_type = '更新提示' then
1
else
0
end) as gx,
SUM(CASE
WHEN l.ser_type = '回访' then
1
else
0
end) as hf,
SUM(CASE
WHEN l.ser_type = '培训' then
1
else
0
end) as px
FROM work_info_log l, config_app a
where l.config_app = a.id
and l.office_id in (34, 500201)
group by a.app_name;


下列关于0racle数据库物理存储的叙述中,不正确的是( )。
在Oracle中,物理存储按数据块、盘区和段来组织。存储粒度的最好选择是数据块,它是一个固定的字节数。盘区是特定数量的连续数据块。一个段是一组分配了特定数据结构的盘区。存储空间大小的选择是以数据块为单位。对于一张给定的表,数据可能存放在数据段中,而索引可能存放在索引段中。

请问oracle数据库恢复怎么办啊 求解
racle数据库恢复,主要包括 (1)系统崩溃只剩下数据文件的情况下的恢复,甚至没有system表空间而只有数据表空间的情况下的恢复.只要提供数据文件就可恢复.(2) undo system 表空间损坏数据恢复 .(3) 非归档或者归档模式下误 delete 数据的恢复、误删除表空间的恢复、 drop truncate update 表的恢复 .(4...

Oracle数据库插入日期型数据的方法
往Oracle数据库中插入日期型数据(to_date的用法)INSERT INTO FLOOR VALUES ( to_date ( '2007-12-20 18:31:34' , 'YYYY-MM-DD HH24:MI:SS' ) ) ;查询显示:2007-12-20 18:31:34.0 --- INSERT INTO FLOOR VALUES ( to_date ( '2007-12-14 14:10' , 'YYYY-MM-DD HH24:MI'...

怎样諳racle数据库SQL性能的稳定性
数据库管理员可以通过查看v$sysstat数据字典中“CPU used by this session”统计项得知ORACLE数据库使用的CPU时间,查看“OS User level CPU time”统计项得知操作系统用户态下的CPU时间,查看“OS System call CPU time”统计项得知操作系统系统态下的CPU时间,操作系统总的CPU时间就是用户态和系统态时间之和,如果ORAC...

怎么用linux命令连接racle数据库(linux如何连接数据库)
1、登录到Linux后,就可以在命令窗口直接对Linux进行操作了。先将用户切换到Oracle。当显示为[oracle@db~]$时,说明切换成功。命令:su-oracle;2、切换到Oracle用户之后,我们登录到到sqlplus,使用dba权限登录到sqlplus。在sqlplus中,我们使用conn连接一下我们具体想要操作的数据库用户。命令:connusername...

利用Java怎样把一个视屏文件娴絆racle数据库中
java可以把视频文件存入ORCALE数据库中.操作方式:java可以把视频读取成为二进制数据,然后保存把该数据存入oracle数据库中 使用的时候,又把二进制还原成视频文件.注意: 不推荐直接把图片, 视频 存入数据库中, 这样会影响数据库的效率, 且存入和读取都比较麻烦.推荐的做法: 把图片,音频, 视频等文件的路径...

Oracle数据库基础的目录
第1篇 基础篇第1章 OracIe数据库概述1.1 数据库基础1.1.1 数据库的基木概念1.1.2 数据管理技术的发展1.1.3 数据模型1.1.4 关系数据库的功能1.1.5 常见的关系数据库管理系统1.2 Oracle数据库系统I.2.1 0racle数据库简介1.2.2 Oracle数据库发展史1.2.3 0racle数据库特点1....

oracle 中权限等级是怎样的?
racle 数据库在密码文件(password file)中记录被授予了 SYSDBA 及 SYSOPER 权限的数据库用户,这些权限能够执行以下操作:具备 SYSOPER 权限的数据库管理员能够执行 STARTUP,SHUTDOWN,ALTER DATABASE OPEN\/MOUNT,ALTER DATABASE BACKUP,ARCHIVE LOG,及 RECOVER 命令,并具备 RESTRICTED SESSION 权限。具...

oracle数据库连接信息的初始用户名和口令是什么啊?
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应...

Oracle数据库基础的内容简介
本书深入浅出地介绍了Oracle9i数据库系统管理与开发的基础知识,包括4篇共16章,内容涉及0racle9i数据库服务器安装与配置、数据库的创建、数据库管理与开发工具的应用、数据库体系结构与存储空间管理、数据库对象及其管理、数据库安全性管理、数据库备份与恢复管理,以及SQL语言、PL\/SQL程序设计等。全书理论...

文山壮族苗族自治州15211113017: 如何更好的使用Oracle全文索引 -
代泰金刚: 不使用Oracle text功能,也有很多方法可以在Oracle数据库中搜索文本.可以使用标准的INSTR函数和LIKE操作符实现.SELECT *FROM mytext WHERE INSTR (thetext, 'Oracle') > 0;SELECT * FROM mytext WHERE thetext LIKE '%Oracle%';有很...

文山壮族苗族自治州15211113017: oracle 中如何创建一个用户(比如myuser),使得这个用户只能访问(select)某个指定的表空间中的表? -
代泰金刚: 必须限制到到指定用户下的指定表,不能某个用户所有/某个表空间所有的表一起赋权的;grant select aTable to aUser; --替换表名/用户名

文山壮族苗族自治州15211113017: oracle数据库中如何达到像mysql数据库中group by 那种去重的效果..求大神解答 -
代泰金刚: oracle和mysql,group by是由区别的.oracle的gruop by 后跟的必须是select查询出的字段 而且group by语句中select指定的字段必须是“分组依据字段”,其他字段若想出现在select中则必须包含在聚合函数中 聚合函数比如:sum(列名) 求和 ...

文山壮族苗族自治州15211113017: Oracle, SQL Server, My SQL如何实现数据分页查询语句 -
代泰金刚: Oracle, SQL Server 和MySQL的分页SQL语句如下:Oracle:方法一:SELECT * FROM(SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= ...

文山壮族苗族自治州15211113017: 如何建立一个名为myorc的Oracle数据库?要代码! -
代泰金刚: 安装oracle 软件;然后运行 dbca 按步骤创建即可

文山壮族苗族自治州15211113017: oracle 数据库中怎么获取照片像素 -
代泰金刚: Oracle本身只是数据管理软件,你想要解读该图片文件的基本信息就需要将数据读出来,然后用编程语言来处理它,比如C,java等等,建议你可以先把它用文件流方法写成一个图片文件然后再处理这个文件.可以参考一下这个答案:http://zhidao.baidu.com/question/45077336.html?si=2

文山壮族苗族自治州15211113017: oracle10g,备份和恢复用户下数据的命令~实例名为:myorcl 表空间为:mytablespace, -
代泰金刚: exp myuser/mypassword@myorcl file=test.dmp imp myuser/mypassword@myorcl file=test.dmp ignore=y

文山壮族苗族自治州15211113017: 如何在不同的oracle数据库中执行同一个脚本? -
代泰金刚: 假如有5台数据库服务器,从你的客户端都能访问这5个数据库,连接字符串分别是db1、db2、db3、db4、db5.做一个批处理文件:my_sql.bat 内容: sqlplus 用户名/口令@db1 @盘符:\路径\脚本.sql --脚本的最后一句是退出SQL环境exit; ...

文山壮族苗族自治州15211113017: 如何把oracle中表的数据导入mysql -
代泰金刚: 1、 运行MySQL Migration Toolkit,一路“Next”到“Source Database”,在Database System中选择Oracle Database Server,如果第一次使用会告之要求加载驱动程序ojdbc14.jar.加载驱动程序之后,界面将变成如下的形式,在其中填写...

文山壮族苗族自治州15211113017: Oracle数据库中如何实现导入文本数据的功能 -
代泰金刚: 测试方法:Dos 下输入 C:\>sqlplus username/password@serviceName 2、然后使用 Oracle 的 sqlldr 命令进行数据的导入 前期条件 1)Oracle 数据库端必须已经建好了需要导入的数据表的结构 2)一个数据源文件 下面例子中为制表符分隔的文本...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网