Получить уникальную запись одного поля, а также объединить с порядком другого поля - PullRequest
0 голосов
/ 26 октября 2018

Я хотел бы получить уникальную запись [studentName] из коллекции студентов на основе даты присоединения

Пример: student [TableName]

studentName     joiningDate
Rosy             2018-06-25
Meera            2018-07-20                  
Rosy             2018-06-20

Я пробовал этот запрос ниже, но онне работает.

выберите отличное (studentName) из порядка учащихся, присоединившись к дате

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

studentName     joiningDate
Rosy             2018-06-25
Meera            2018-07-20  

Ответы [ 3 ]

0 голосов
/ 26 октября 2018

Вы можете использовать Group By с Max() функцией агрегирования (чтобы получить дату последнего присоединения). Попробуйте вместо этого следующий запрос:

SELECT studentName, 
       MAX(joiningDate) AS joiningDate
FROM student 
GROUP BY studentName
ORDER BY joiningDate ASC 
0 голосов
/ 26 октября 2018

Ниже для стандартного SQL BigQuery и работает для любого количества дополнительных полей в этой таблице без изменения запроса

#standardSQL 
SELECT AS VALUE ARRAY_AGG(t ORDER BY joiningDate DESC LIMIT 1)[OFFSET(0)]
FROM `project.dataset.student` t
GROUP BY studentName

Вы можете протестировать, поиграть с вышеупомянутыми, используя фиктивные данные из вашего вопроса:

#standardSQL
WITH `project.dataset.student` AS (
  SELECT 'Rosy'studentName, '2018-06-25' joiningDate UNION ALL
  SELECT 'Meera', '2018-07-20' UNION ALL                  
  SELECT 'Rosy', '2018-06-20' 
) 
SELECT AS VALUE ARRAY_AGG(t ORDER BY joiningDate LIMIT 1)[OFFSET(0)]
FROM `project.dataset.student` t
GROUP BY studentName

с результатом

Row studentName joiningDate  
1   Rosy        2018-06-25   
2   Meera       2018-07-20   
0 голосов
/ 26 октября 2018

Вместо этого следует попробовать GROUP BY, например:

SELECT studentName, MIN(joiningDate)
FROM student
GROUP BY studentName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...