在select语句中对数据进行分组

时间:2010-09-29 16:54:46

标签: sql oracle

我有大量数据需要在检索时分类到不同的组中。每组都有不同的条件。我不想单独检索它们。我想使用单个sql语句知道每个组中的项目数。

例如,伪代码将是这样的:

Select count(IssueID) as Issue1_Count if(condition1), 
count(IssueID) as Issue2_Count if(condition2),
count(IssueID) as Issue3_Count if(condition3)
From table1, table2, tabl3
where common_condition1 and common_Condition2;

有人可以帮我制作一个Oralce查询......

2 个答案:

答案 0 :(得分:12)

这样说:

SELECT 
       SUM(CASE WHEN condition1 THEN 1 ELSE 0 END) as Issue1_Count,
       SUM(CASE WHEN condition2 THEN 1 ELSE 0 END) as Issue2_Count,
       SUM(CASE WHEN condition3 THEN 1 ELSE 0 END) as Issue3_Count,
FROM 
       table1, table2, tabl3
WHERE 
       common_condition1 and common_Condition2;

答案 1 :(得分:0)

Oracle的CASE声明应该可以帮到你。看看这个:http://www.dba-oracle.com/t_case_sql_clause.htm

虽然有限制,所以我不是100%肯定你可以完全按照你在这里使用它们。