Получить столбец в выводе при группировке, но без группировки этого столбца только в том случае, если для сгруппированного столбца есть только одна строка - PullRequest
4 голосов
/ 12 января 2012

Table1

t1Id
t1Name


Table2

t2Id
t2Name

Table1_Table2_Mapping

t1Id
t2Id

В этом запросе ниже, в качестве второго столбца в выводе, я хочу столбец t2Name, где Having COUNT(t1Id) = 1, и мне нужно некоторое фиксированное значение ('Common'), где Having COUNT(t1Id) > 1

Select t1Id 
from Table1_Table2_Mapping
Group By t1Id

Заранее спасибо.

1 Ответ

6 голосов
/ 12 января 2012
SELECT m.t1Id,
       CASE
         WHEN COUNT(*) = 1 THEN MAX(t2.t2Name)
         ELSE 'Common'
       END
FROM   Table1_Table2_Mapping m
       JOIN Table2 t2
         ON t2.t2Id = m.t2Id
GROUP  BY m.t1Id  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...