Соедините два выбора в один - PullRequest
0 голосов
/ 28 апреля 2020

Не могли бы вы помочь мне поставить второй выбор в первый? Мне нужно рассчитать скорость типа в первом выборе. Второй выбор работает хорошо.

Первый выбор:

WITH "global" AS (
 SELECT
  m.id
  ,json_build_array(
      ce.payload->>'Name',
      ce.payload->>'Date',
      ce.payload->>’Type,
      ce.payload->>’Rate’,
      row_number() over (partition by m.id order by ce.payload->>’Date’ desc)) as "value"
FROM public."events" ce
LEFT OUTER JOIN "external"."mapping" m
    ON ce.id=m.id
WHERE ce.type IN ('cs_calls','pc_calls')
    AND coalesce(ce.payload ->> 'Name', '')!=''
    AND m.id IS NOT NULL
 )

SELECT
    id,
    value
FROM “global”

Второй выбор:

select 
id,
cast(issue as float)/cast(total_count as float) as Rate
from (select 
    id,
    sum(case when type='Issue' then 1 else 0 end) as issue,
   count(*) total_count 
    from events
    GROUP BY id)

1 Ответ

0 голосов
/ 28 апреля 2020

Если Id - способ присоединиться к этим таблицам, тогда вы можете попробовать следующее

select 
    g.id,
    g.value,
    ((issue * 1.0) / total_count) as Rate
from 
(
    select 
        id,
        sum(case when type='Issue' then 1 else 0 end) as issue,
        count(*) total_count 
    from events
    group by
    id
 ) e
join global g
on e.id = g.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...