Oracle SQL для сравнения 2 строк и возвращаемых значений - PullRequest
2 голосов
/ 11 февраля 2020

Мои данные в формате ниже

Test ID | DailyMonthly
    =======================
    12345   | Daily
    12345   | Monthly
    23456   | Daily
    23456   | Daily
    09876   | Monthly
    09876   | Monthly

Я хочу вернуть результаты как,

12345 - Both
23456 - Daily
09876 - Monthly 

Как этого достичь? Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 11 февраля 2020

Еще один вариант - использовать count следующим образом:

SELECT "Test ID",
       CASE WHEN COUNT(DISTINCT "DailyMonthly") > 1 THEN 'Both'
            ELSE MIN("DailyMonthly")
       END AS Result
FROM data
GROUP BY "Test ID"
ORDER BY "Test ID"

Cheers !!

0 голосов
/ 11 февраля 2020
  SELECT TestID,
         CASE WHEN COUNT (TestID) > 1 THEN 'Both' ELSE DailyMonthly END
             AS DailyMonthly
    FROM (  SELECT TestID, DailyMonthly
              FROM data_
          GROUP BY TestID, DailyMonthly)
ORDER BY DailyMonthly
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...