2017-02-03 10 views
0

Я новичок в SQL-запросах. Я планирую присоединиться к 2 таблицам в HANA Express и получить максимальное значение двух столбцов одной таблицы и присоединиться к ней с другой таблицей. Вот сценарий:Получение максимальных значений для столбцов и объединение их с другой таблицей

Table A 
+-----+----------------+ 
| Key |  Value  | 
+-----+----------------+ 
| 1 | Value is 1  | 
| 2 | Value is 2  | 
| 3 | Value is 3  | 
+-----+----------------+ 

Table B 
+-----+----------------------------+------+ 
| Seq |   Timestamp   | Key | 
+-----+----------------------------+------+ 
| 500 | Feb 3, 2017 6:35:59.742 PM | 1 | 
| 501 | Feb 3, 2017 6:35:59.742 PM | 2 | 
| 502 | Feb 3, 2017 6:36:05.758 PM | 2 | 
| 503 | Feb 3, 2017 6:36:05.758 PM | 4 | 
| 504 | Feb 3, 2017 6:36:05.758 PM | 3 | 
| 505 | Feb 3, 2017 6:36:09.766 PM | 5 | 
+-----+----------------------------+------+ 

output table 
+-----+------------+--------+----------------------------+--------------------------------+ 
| Key | Value | MaxSeq |  LatestTimeStamp  |   ExecutionTime   | 
+-----+------------+--------+----------------------------+--------------------------------+ 
| 1 | Value is 1 | 505 | Feb 3, 2017 6:36:09.766 PM | (execution time of this query) | 
| 2 | Value is 2 | 505 | Feb 3, 2017 6:36:09.766 PM | (execution time of this query) | 
| 3 | Value is 3 | 505 | Feb 3, 2017 6:36:09.766 PM | (execution time of this query) | 
+-----+------------+--------+----------------------------+--------------------------------+ 

Так вот MaxSeq будет максимальное значением столбца Seq в таблице B и LatestTimeStamp является последней временной меткой столбца временной метки таблицы B и оба они будут постоянными в присоединяемой таблице. Время выполнения, рассчитанное от Current_Timestamp, функционирует в HANA. это даже возможно?

+0

и 'ExecutionTime'? Либо объясните, как он рассчитывается, либо удаляет его из вопроса. –

+0

спасибо. добавлено объяснение времени выполнения. –

ответ

0

Попробуйте это:

select a.Key, a.Value, 
(select max(Seq) from TableB) MaxSeq, 

(выбрать макс (Отметка) из TableB) с LatestTimestamp, ??? Executiontime из TableA

Даже лучше:

select a.Key, a.Value, b.MaxSeq, b.LatestTimestamp , 
Current_Timestamp - b.LatestTimestamp Executiontime 
from TableA, 
(select max(Seq) MaxSeq, max(Timestamp) LatestTimestamp from TableB) b 
+0

спасибо, но этот запрос генерирует max seq для каждого значения ключа. не максимальное значение столбца seq в таблице b, которое будет константой –

+1

Я вижу, вы не хотите max для каждого ключа, а всего макс для таблицы. Не уверен, зачем вам это нужно, но я отредактирую свой ответ соответственно. – MikeS

+0

безупречный! благодаря тонну! –

 Смежные вопросы

  • Нет связанных вопросов^_^