SQL-запрос и устранение неполадок - PullRequest
1 голос
/ 15 июня 2019

Добрый день всем, у меня есть вопрос относительно моего sql-запроса о перестановке данных.результат запроса выглядит следующим образом.

Area | Name | Amount |   Date
  1  |  N1  |   10   | 6/15/2019
  2  |  N1  |   20   | 6/15/2019
  3  |  N1  |   30   | 6/15/2019
  4  |  N1  |   77   | 6/15/2019
  1  |  N2  |   30   | 6/15/2019
  2  |  N2  |   45   | 6/15/2019
  3  |  N2  |   60   | 6/15/2019

Можно ли превратить результат запроса в нечто подобное и как его достичь?

Area | Name | Amount | Name | Amount
  1  |  N1  |   10   |  N2  |   30
  2  |  N1  |   20   |  N2  |   45
  3  |  N1  |   30   |  N2  |   60
  4  |  N1  |   77   | Null |  Null

Проблема в том, что пользователь неНе знаю имен, потому что они генерируются в зависимости от даты, когда они вставлены.

1 Ответ

1 голос
/ 15 июня 2019

Если я правильно понял, тогда сработало бы условное агрегирование:

select area,
       max(case when seqnum = 1 then name end) as name1,
       max(case when seqnum = 1 then amount end) as amount1,
       max(case when seqnum = 2 then name end) as name2,
       max(case when seqnum = 2 then amount end) as amount2
from (select t.*,
             row_number() over (partition by area order by name) as seqnum
      from t
     ) t
group by area;
...