Правильный оператор Group By для моих таблиц - PullRequest
0 голосов
/ 25 сентября 2018

Прежде всего, я использую SAS.Таким образом, решение может быть в наборе данных sas или просто в SQL-выражении

Мои исходные данные - таблица А. Однако я хочу преобразовать их в итоговую таблицу, которая находится справа.Screenshot

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

Ответы [ 4 ]

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

Я вижу, что программисты SAS все еще спят.Преимущество этого состоит в том, что нет необходимости ссылаться на переменные, отличные от групповых переменных.

data want;
   update have(obs=0) have;
   by datetime;
   run;
0 голосов
/ 25 сентября 2018

использовать агрегацию:

select datetime,max(status) status,max(option) option, max(age) age,max(height) height,max(bloodtype) bloodtype
from tablename
group by datetime
0 голосов
/ 25 сентября 2018

max и min игнорировать null с, поэтому, если у вас есть одно не null значение для каждой группы, max (или min) просто вернет это значение:

SELECT   datetime, MAX(option), MAX(age), MAX(height), MAX(bloodtype)
FROM     a
GROUP BY datetime
0 голосов
/ 25 сентября 2018

использовать агрегированную функцию, которая игнорирует нулевые значения

 select Datetime,max(status) as status ,max(option) as option,
max(age) as age,max(Height) as Height,max(Bloodtype) as Bloodtype
from tableA 
group by Datetime
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...