BrunoLM Asked: 2011-10-05 05:06:31 +0800 CST2011-10-05 05:06:31 +0800 CST 2011-10-05 05:06:31 +0800 CST 如何选择游标的数据和总数? 772 我有一张这样的桌子: ID | Name ------------ 1 | AA 2 | AA 3 | AA 4 | BB 我想选择 Name like'AA'在游标中的所有行,并从另一个游标中的结果中获取计数。我还需要分页结果。 预期结果(跳过 = 0;取 = 2) -- p_result ID | Name ------------ 1 | AA 2 | AA -- p_count 3 我怎样才能做到这一点? oracle select 3 个回答 Voted Best Answer a_horse_with_no_name 2011-10-06T23:22:49+08:002011-10-06T23:22:49+08:00 msi77 解决方案的替代方案是使用分析函数。这可能会更有效一些,但您应该运行一个解释计划来找出答案。 SELECT id, name, count(*) over () as total_count FROM your_table WHERE name = 'AA' mjStallinger 2011-10-06T14:27:01+08:002011-10-06T14:27:01+08:00 我不确定您真正想要什么,但我建议您尝试以下操作: SELECT ID, Name, 'p_result' AS Type FROM xy ORDER BY Name UNION SELECT COUNT(1), Name, 'p_count' AS Type FROM xy GROUP BY Name 它未经测试,但它可以告诉你某事。像这样: ID | Name | Type ----------------------- 1 | AA | p_result 2 | AA | p_result 3 | AA | p_result 4 | BB | p_result 3 | AA | p_count 1 | BB | p_count 这样做的缺点是,您将所有信息合并在一起。也许 2 个查询对您的情况更有帮助! msi77 2011-10-06T22:43:20+08:002011-10-06T22:43:20+08:00 您可以在一个查询中完成: select *, (select COUNT(*) from table where Name=p.Name) from table p where Name='AA'
msi77 解决方案的替代方案是使用分析函数。这可能会更有效一些,但您应该运行一个解释计划来找出答案。
我不确定您真正想要什么,但我建议您尝试以下操作:
它未经测试,但它可以告诉你某事。像这样:
这样做的缺点是,您将所有信息合并在一起。也许 2 个查询对您的情况更有帮助!
您可以在一个查询中完成: