-
如何将这2个查询合并,只查询一次0
第一个sql
SELECT COUNT(0),user_id,onlinekf_get_customer_name(user_id) customerName FROM(
SELECT COUNT(0),user_id
FROM BUSINESS_CHAT_MSG T
WHERE T.USER_ID IN
(SELECT ID
FROM BASE_CUSTOMER_INFO T
WHERE COMPANY_ID = 'e4510180373c41a09a87b1f768a9b660')
AND chat_time>=to_date('2014-04-01 00:00:00','yyyy-MM-dd hh24:mi:ss')
AND chat_time<=to_date('2014-04-25 23:59:59','yyyy-MM-dd hh24:mi:ss')
GROUP BY user_id,t.chat_basic_id)
GROUP BY user_id
第二个sql
SELECT COUNT(0),user_id,onlinekf_get_customer_name(user_id) customerName FROM(
SELECT COUNT(0) vc,user_id,chat_basic_id
FROM BUSINESS_CHAT_MSG T
WHERE T.USER_ID IN
(SELECT ID
FROM BASE_CUSTOMER_INFO T
WHERE COMPANY_ID = 'e4510180373c41a09a87b1f768a9b660')
AND sendrole_type='0'
AND chat_time>=to_date('2014-04-01 00:00:00','yyyy-MM-dd hh24:mi:ss')
AND chat_time<=to_date('2014-04-25 23:59:59','yyyy-MM-dd hh24:mi:ss')
GROUP BY user_id,t.chat_basic_id)
GROUP BY user_id
两个sql唯一的区别是其中有个条件不同,但却要查询2次,能否合并成一个,只查询一次,不能通过union,union还是查了2次
问题补充:第一个sql count算的是 对话数量,第二个sql count 算的是 有效对话数量,显示的时候要分2列,显示在一条记录里(对话数量 有效对话数量),不是把他们合并,放在一列里
问题补充:数据库为oracle2014年5月16日 14:46
4个答案 按时间排序 按投票排序
-
采纳的答案
select a.user_id, onlinekf_get_customer_name(user_id) customerName , count(1) 对话数量, sum(decode(b.sendrole_type,'0',1,0)) 有效对话数量 from BUSINESS_CHAT_MSG a,BASE_CUSTOMER_INFO b where a.user_id = b.id and b.COMPANY_ID = 'e4510180373c41a09a87b1f768a9b660') AND b.chat_time>=to_date('2014-04-01 00:00:00','yyyy-MM-dd hh24:mi:ss') AND b.chat_time<=to_date('2014-04-25 23:59:59','yyyy-MM-dd hh24:mi:ss')
大概意思就是两表关联,直接count计算的就是对话数量,加了decode判断的就是有效对话数量
因为你没给表结构,所以可能直接运行不一定能用,你自己再改改2014年5月16日 17:07
-
SELECT COUNT(0) vc,user_id,chat_basic_id,count(decode(tt.sendrole_type,'0',tt.sendrole_type) FROM BUSINESS_CHAT_MSG T , (SELECT ID as user_id ,sendrole_type as sendrole_type FROM BASE_CUSTOMER_INFO T WHERE COMPANY_ID = 'e4510180373c41a09a87b1f768a9b660') AND chat_time>=to_date('2014-04-01 00:00:00','yyyy-MM-dd hh24:mi:ss') AND chat_time<=to_date('2014-04-25 23:59:59','yyyy-MM-dd hh24:mi:ss') GROUP BY user_id,t.chat_basic_id,sendrole_type) tt where t.USER_ID = tt.user_id group by t.user_id,chat_basic_id
你给的语句有问题,group by现实两个字段,但group by 后面只给一个,而且外层最终结束括号也没有。
2014年5月17日 15:54
-
如果是oracle 可以考虑用with as 如: WITH qb1 AS (SELECT inst_id FROM gv$session), qb2 AS (SELECT unique inst_id FROM qb1 UNION ALL SELECT unique inst_id FROM qb1) SELECT /*+ MATERIALIZE */ * FROM qb1, qb2 WHERE qb1.inst_id = qb2.inst_id;
2014年5月16日 15:07
-
WHERE (COMPANY_ID = 'e4510180373c41a09a87b1f768a9b660' or (COMPANY_ID = 'e4510180373c41a09a87b1f768a9b660' AND sendrole_type='0' )) 不可以么?
2014年5月16日 14:59
相关推荐
合并规则为:每次只能选择相邻的两堆石子进行合并,并将这两堆石子的数量相加得到的新数量作为这次合并的得分。题目要求对于给定的 \(n\) 堆石子,计算出所有可能的合并方案中得分的最小值和最大值。 #### 二、输入...
这样,我们只需设置一次,然后在每次需要重新组合Excel文件时运行联合查询。 五、注意事项 在使用Access合并多个Excel文件时,需要注意以下几点: * 必须将所有Excel文件链接到Access数据库中。 * 在SQL视图中,...
本资源“从一次SQL查询中获得多个查询数值”显然关注的是如何通过一个SQL语句获取数据库中的多组数据,提高查询效率。下面我们将深入探讨这一主题。 首先,SQL查询的基础是SELECT语句,它用于从数据库中检索数据。...
这个工具通常允许用户一次性选择多个Excel文件,然后通过简单的步骤完成合并。可能的操作流程包括: 1. **文件选择**:用户可以通过文件浏览器或者拖放操作选择多个Excel文件,工具会自动识别并加载这些文件。 2....
通过对比可以看出,虽然`id=123`的行在两个查询中都出现了,但在最终结果集中只出现了一次。这是因为`UNION`自动去除了重复的行。 #### 3. 注意事项 - **性能差异**:`UNION ALL`比`UNION`执行速度快,因为它不...
可以考虑使用虚拟DOM技术,或者先在内存中处理好合并逻辑,再一次性更新DOM。 4. **兼容性问题**:虽然`colspan`和`rowspan`是HTML标准的一部分,但在老版本的浏览器中可能存在兼容性问题。确保在项目中测试所有...
4. **执行主查询**:最后,执行主查询,使用`GROUP BY`子句按合并条件对数据进行分组,确保每组数据只出现一次。 通过这种方式,我们可以有效地将多行数据转换为一行,同时在一个列中拼接所需的字符串值。这种方法...
在编程领域,数组的合并与排序是一个常见的操作,特别是在数据处理和算法...在实际项目中,这样的操作可能会出现在数据库查询合并、数据清洗、排序算法等多个场景。理解并熟练掌握这些技巧对提升编程能力非常有帮助。
然后重置`rowSpanNum`为1,准备处理下一次可能的合并。 #### 功能拓展与优化 虽然给定的代码片段提供了一个基本的行合并解决方案,但在实际应用中,我们可能还需要考虑以下几点: 1. **多列合并**:除了基于单列...
在这个源码中,我们将深入探讨C#中数据表的操作,包括数据表的合并、数据的不重复插入、事务处理以及批量数据导入导出到数据库。 首先,让我们了解数据表(Dataset)的概念。数据表是一个内存中的数据结构,可以...
这得益于Git内部对分支的实现机制——实际上每一个分支都只是一个简单的指针,指向某一次提交。因此,创建和切换分支的操作速度极快,极大地提高了团队协作效率,特别是在处理大型项目时。 **分支的优势**主要体现...
3. **`GROUP BY name`**:按照`name`列进行分组,确保每个名字对应的课程列表只出现一次。 #### 二、Oracle 9i 多行合并为一行函数 在Oracle 9i中,由于`wm_concat()`函数尚未被引入,因此需要采用更复杂的方法来...
2. **打开单个结果集**:然后,为每个要合并的查询创建并执行SQL语句,打开记录集。例如,假设我们有顾客表(Customers)和雇员表(Employees): ```vb Dim conn As New ADODB.Connection conn.Open "Provider=...
这是因为每个元素最多只会被访问一次。 #### 知识点五:应用场景 1. **数据库查询优化**:在数据库系统中,处理大量已排序的数据时可以利用此算法进行快速合并,提高查询效率。 2. **文件系统管理**:在文件系统的...
- `GROUP BY value` 是为了确保相同的值只出现一次。 4. **结果展示**:最终查询结果将显示所有 `value` 值被合并成一个字符串,其中不同的值之间用逗号分隔。 5. **清理资源**:使用 `DROP TABLE` 删除临时表 `...
这就意味着你只需要设置一次联合查询,之后每次需要更新数据时,只需运行这个查询即可。 总的来说,使用Access来合并多个Excel文件是一种灵活、高效的方法,尤其适用于需要频繁更新和查看多源数据的情况。这种方法...
此外,对于大型数据集,可能需要分批合并,避免一次性处理过多文件导致内存溢出。 在实际应用中,我们还可以考虑利用Hive自身的`COMPACTION`功能,它可以自动合并相同分区下的小文件。但是,自动合并可能不适用于...
逐级合并适用于大型、跨行业多种经营的集团化公司,一次性合并适用于集团公司合并报表产品总体介绍-合并方法及应用范围合并报表产品总体介绍-合并方法及应用范围合并报表产品总体介绍-合并方法及应用范围逐级合并...
每个实例可能代表一次数据库查询,包含具体的SQL语句和执行查询所需的参数。在`executeConcurrentQueries`中,这些`Runnable`对象会被提交到线程池进行执行。 ### 6. 并发控制与同步 在并发环境下,为了防止数据...
这样只需要加载一次大图,就能显示多个图标,减少了网络请求。 2. **工具使用**:CssBgImageMergeTool.exe是一个可执行文件,用户可以将需要合并的背景图片添加到工具中,它会自动生成合并后的雪碧图以及相应的CSS...