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

#sql

#sql

Вопрос:

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

 Name       Address        City    State    ID        ID Type
XYZ        123 address     New York  NY     123      Code1
XYZ       123 address      New York   NY    D561      Code2
ABC        895 address     Richmond    VA    568A      Code1
XAB        456 address     Dallas      TX    568       Code2
XAB        456 address      Dallas     TX    458A562    Code1
XYZ       123 address         New York  NY   123T        Code3
  

Результат

 Name       Address      City   State    Code1   Code2  code3
XYZ        123 Address   New York  NY   123      D561  123T
ABC        895 address    Richmond  VA  568A
XAB        456 address    Dallas    TX  458A562   563
  

введите описание изображения здесь

Комментарии:

1. Будет ли максимум две строки для каждого случая, или может быть больше? Взгляните на СВОДНЫЙ запрос. Пожалуйста, помечайте вопросы соответствующей базой данных и тем, что вы пробовали. Спасибо

2. какую СУБД вы используете?

Ответ №1:

Приведенный ниже запрос выдаст вам правильный желаемый o / p согласно приведенному выше образцу ввода или же для стандарта вы можете использовать PIVOT ключевое слово для создания нового столбца

 SELECT  Name, Address,City, State,   
        min(ID) AS ID1,max(ID) AS ID2 
FROM your_table
GROUP BY Name, Address,City, State
  

Ответ №2:

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

 select Name, Addresss, City, State,
       min(id) as id1,
       (case when min(id) <> max(id) then max(id) end) as id2 
from t
group by Name, Addresss, City, State ;
  

Комментарии:

1. Я добавил новый скриншот, и я использую sql server

2. @Mike . . . Я не уверен, к чему ты клонишь. Этот ответ, похоже, делает то, что вы хотите.

3. Большое вам спасибо.

4. @ Gordon что произойдет, если у меня будет еще одно значение Code 3 или Id3 value?

5. На основе моего примера все работает так, как ожидалось. Спасибо.