Как классифицировать работодателей в три столбца на основе условия? - PullRequest
0 голосов
/ 10 мая 2011

Я хочу классифицировать работодателей, которые выбрали трек, в три разных столбца, как показано ниже, исходя из условия нет.дней, которые они потратили на прохождение курсов, используя столбец БД lrn_complt, сообщающий «нет».дней:

нет emp, который закончил трек в

 0-30days             30-60days          60-90days
 1st column           2nd column         3rd column

Для этого нужно Sql или, если вы можете сказать, логика тоже, это может помочь ???

Ответы [ 3 ]

2 голосов
/ 10 мая 2011

Вам нужно будет опубликовать таблицу и вставить операторы, чтобы кто-нибудь правильно понял вашу проблему.Ваша исходная таблица, данные и ожидаемый результат и ваша целевая 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;
0 голосов
/ 10 мая 2011

Похоже, вам нужен 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;
0 голосов
/ 10 мая 2011

По сути, вам нужно сделать 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
...