GROUP BY WiTH один столбец и показать несколько столбцов - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть таблица bschool_test_relation_domain со столбцами testid, courseid, instid

  instid | Courseid  | testid
  23     |   35      | 45
  23     |   35      | 56
  33     |   45      | 68
  33     |   45      | 76
  33     |   45      | 86  

Мне нужно извлечь строку с группой по inst_id и CourseID, а затем проверить testid для фильтрации данных.

 Select t1,instid,t1.courseid  
   from table1 as t1 
   JOIN 
      ( Select instid 
             , courseid 
          from bschool_test_relation_domain 
         group 
            by instid 
             , courseid ) t2 
     ON t2.instid = t1.instid 
    AND t2.courseid = t1.courseid 
  where t2.testid = 68

результат, который я хочу получить

  instid | Courseid  | testid
  33     |   45      | 68

Ответы [ 3 ]

0 голосов
/ 04 апреля 2019

использовать агрегатную функцию min() не нужно никаких подзапросов

select  b.instid , b.courseid ,min(b.testid) testid
          from bschool_test_relation_domain b
           join table1 t on b.courseid=t.courseid and b.instid=t.instid
           where t.testid = 33
group by b.instid , b.courseid
0 голосов
/ 04 апреля 2019

Пожалуйста, попробуйте ниже, я надеюсь, что это будет работать:

Select instid , courseid
from bschool_test_relation_domain
where orderby testid
0 голосов
/ 04 апреля 2019

Вы можете попробовать ниже - используя min()

Select instid , courseid,min(testid)
from bschool_test_relation_domain 
where instid = 33
group by instid , courseid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...