написать функцию, которая будет отображать детали поезда с максимальным пассажиром на данную дату? - PullRequest
0 голосов
/ 25 сентября 2019

следующие таблицы в базе данных.много-много отношений между поездом и пассажиром

имя таблицы 1 = поезд

   TNO   TNAMe

     1   x
     2   y
     3   z

имя таблицы 2 = пассажир

PNO PNAME

   111   a 
   222   b                 
   333   c 


   table 3 name=tp

    TNO      PNO     TPDATE        

     1        111     23-NOV-15         
     2        222     24-JUN-14              
     3        222     19-JUN-13        
     1        333     23-NOV-15         

используя следующий код, я только выясняю, какой номер поезда имеет наибольшую частоту, выберите tno, count (tno) в качестве числа foccurance от группы tp по tno

1 Ответ

0 голосов
/ 25 сентября 2019

Попробуйте использовать аналитические функции group by и row_number следующим образом:

Select name, tp_date 
From
(Select t.tname tp.tp_date,
        row_number() over (partition by tp.tp_date order by count(1) desc nulls last) as cnt
From train t
Join tp tp
On (t.id = tp.tno)
Group by tp.tno, tp.tp_date)
Where cnt = 1;

Cheers !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...