两条记录合并一条的 sql

此查询结合了用户基本信息、组织映射、测试统计信息,通过内联和左连接,实现了用户信息与测试统计数据的整合展示,按注册时间降序排列并限制返回前10条记录。
select          eu.ID,
eu.UID,
eu.ID_NO,
eu.USER_NICK,
eu.USER_NAME,
eu.PWD_DIGEST,
eu.PWD_SALT,
eu.SEX,EMAIL,
eu.PHONE,
eu.STATUS,
eu.USER_TYPE,
eu.REG_SRC_ID,
eu.USER_LOC,
eu.GMT_BIRTH,
eu.GMT_CREATE,
eu.GMT_MODIFY,
et1.test_count,
et2.last_time


from EH_USER_INFO eu
inner join EH_USER_ORG_MAP euo on eu.uid = euo.uid
inner
join EH_ORGANIZATION eo on euo.org_id = eo.id
left join
EH_LOGON_INFO el on
eu.uid = el.uid and el.logon_type =
'DEFAULT' and
el.status = 'E'

       left join eh_user_test_stat_info et1 on
                    et1.uid=eu.uid and et1.stat_type='all_count'
         
                left join eh_user_test_stat_info et2 on
                   et2.uid=eu.uid and  et2.stat_type='last_time'
        
where  
eu.uid notnull


           order by eu.gmt_create desc 


                limit 10
OFFSET 0







### Oracle 合并两条记录SQL 语法 在 Oracle 数据库中,可以通过 `UNION` 或 `UNION ALL` 运算符来合并两个查询的结果集。这两种运算符的主要区别在于是否去除重复项: - 使用 `UNION` 会自动去重,返回唯一的记录集合。 - 使用 `UNION ALL` 不会对结果进行去重处理,因此性能通常更高。 以下是具体的语法示例以及说明: #### 示例 1: 使用 UNION 去重 如果希望从两张表中获取数据并将它们合并成一个结果集,同时去掉可能存在的重复行,则可以使用如下语句: ```sql SELECT column1, column2 FROM table_a UNION SELECT column1, column2 FROM table_b; ``` 此方法适用于需要确保最终结果集中无重复记录的情况[^4]。 #### 示例 2: 使用 UNION ALL 不去重 当不需要考虑结果集中是否存在重复项时,推荐采用效率更高的 `UNION ALL` 方式: ```sql SELECT column1, column2 FROM table_a UNION ALL SELECT column1, column2 FROM table_b; ``` 需要注意的是,在实际应用过程中,参与联合操作的各个子查询所选取列的数量及其对应的数据类型应当一致;否则可能会引发错误或者不符合预期的行为发生[^3]。 另外一种场景涉及到单张表格内部不同条件下的多条记录合成单一输出的情形下也可以利用聚合函数配合GROUP BY实现逻辑上的“合并”。比如统计某个部门员工总数的例子: ```sql SELECT department_id, COUNT(*) AS employee_count FROM employees WHERE job_title LIKE '%Manager%' GROUP BY department_id; ``` 以上展示了如何通过标准SQL命令完成简单的记录组合任务。对于更复杂的业务需求则往往还需要借助PL/SQL编写程序块来进行定制化处理[^2]。 ### 注意事项 - 如果两部分数据源结构完全相同可以直接写在一起做全量加载; - 对于大数据量的操作建议先测试小样本确认正确后再扩展至整体范围以免影响线上服务稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值