Как выбрать однозначные столбцы вместе с одним не различимым столбцом в DB2? - PullRequest
0 голосов
/ 01 августа 2011

Мне нужно выполнить отдельный выбор для нескольких столбцов, из которых один столбец не является отличным. Могу ли я указать, какие столбцы составляют отдельную группу в моем операторе SQL.

В настоящее время я делаю это.

Select distinct a,b,c,d from TABLE_1 inner join TABLE_2 on TABLE_1.a = TABLE_2.a where TABLE_2.d IS NOT NULL;

У меня проблема в том, что я получаю 2 строки для вышеуказанного SQL, потому что столбец D содержит разные значения. Как я могу сформировать отдельную группу столбцов (a, b & c), игнорируя столбец d, но также включив столбец d в мое предложение select?

К вашему сведению: я использую DB2

Спасибо Sandeep

Ответы [ 2 ]

1 голос
/ 08 августа 2011
SELECT a,b,c,MAX(d) 
FROM table_1 
INNER JOIN table_2 ON table_1.a = table_2.a 
GROUP BY a,b,c
0 голосов
/ 17 августа 2011

Ну, ваш вопрос, даже с уточнениями, все еще довольно общий. Итак, вы получите общий ответ.

Не зная больше о структуре вашей таблицы или желаемых результатах, может быть невозможно дать значимый ответ, но здесь идет речь:

SELECT a, b, c, d
FROM table_1 as t1
JOIN table_2 as t2
ON t2.a = t1.a
AND t2.[some_timestamp_column] = (SELECT MAX(t3.[some_timestamp_column])
                                  FROM table_2 as t3
                                  WHERE t3.a = t2.a)

Предполагается, что table_1 заполняется отдельными строками для извлечения и что отношение «один ко многим» между table_1 и table_2 создается из-за различных значений d, заполненных уникальным [some_timestamp_column] раз. Если это так, он получит самую последнюю запись table_2, которая соответствует table_1.

...