如何根据条件将雇主分为三列?

时间:2011-05-09 20:48:37

标签: sql conditional conditional-statements

我希望根据条件,将参与该轨道的雇主分为以下三个不同的栏目。他们完成课程的几天,使用数据库专栏lrn_complt告诉没有。采取的日子:

中完成赛道的人员
 0-30days             30-60days          60-90days
 1st column           2nd column         3rd column

这需要Sql,或者如果你也可以说逻辑可能有帮助???

3 个答案:

答案 0 :(得分:2)

您需要发布创建表和插入语句,以便任何人正确理解您的问题。您的输入表,数据和预期输出以及目标RDBMS至少。

http://tkyte.blogspot.com/2005/06/how-to-ask-questions.html

假设您有两个这样的列...

您可以尝试下面的内联查询...

Select id,
       (select count(*) from courses where days between 0 and 30) 0_to_30_days,
       (select count(*) from courses where days between 31 and 60) 0_to_30_days
       (select count(*) from courses where days between 61 and 90) 0_to_30_days
from courses;

答案 1 :(得分:0)

基本上,您需要在一个主查询中创建3个子查询:

SELECT
(SELECT COUNT(*) FROM EMPLOYER WHERE LRN_COMPLT BETWEEN 0 AND 30) AS COLUMN1,
(SELECT COUNT(*) FROM EMPLOYER WHERE LRN_COMPLT BETWEEN 31 AND 60) AS COLUMN2,
(SELECT COUNT(*) FROM EMPLOYER WHERE LRN_COMPLT BETWEEN 61 AND 90) AS COLUMN3
FROM DUAL

答案 2 :(得分:0)

您似乎需要PIVOT

Select id,
       COUNT(CASE WHEN lrn_complt  between 0 and 30 THEN 1 END) Group1,
       COUNT(CASE WHEN lrn_complt  between 31 and 60 THEN 1 END) Group2,
       COUNT(CASE WHEN lrn_complt  between 61 and 90 THEN 1 END) Group3
from courses;