learz Ответов: 2

Выберите один столбец с несколькими столбцами, возвращаемыми там, где другие столбцы одинаковы, запрос mysql


Выберите один столбец (val3), с несколькими возвращаемыми столбцами, где другие столбцы (id, val1) одинаковы, запрос mysql

данные выглядят примерно так

id val1 val2 val3
R  m    1    a   
N  c    1    c
N  c    2    d
Y  b    1    e
Y  h    1    u
Y  h    2    i


результат должен быть
id val1 val3s
R  m    a   
N  c    c,d
Y  b    e
Y  h    u,i


Что я уже пробовал:

Сделали,
SELECT id, val1,  
CASE
 WHEN COUNT(val1) = 1 THEN  CONCAT('(', val3, ')')
 WHEN COUNT(val1) > 1 THEN  CONCAT('(',  '??' , ')')
END AS val3s
FROM table1
GROUP BY val1

2 Ответов

Рейтинг:
2

manu_dhobale

Пожалуйста, попробуйте это. Надеюсь, это поможет, здесь ваша таблица 1-TestConC

select  a.id, a.val1, CustomData
= STUFF( (SELECT ',' + b.val3 
                             FROM TestConC b    
                             where b.id=a.id and b.val1=a.val1                     
                             FOR XML PATH('')),1, 1, '')
From TestConC a
group by  a.id, a.val1
order by a.id


Rajesh waran

5+

manu_dhobale

Спасибо

Maciej Los

Похоже, что OP хочет отображать только нечисловые данные. Ваше решение не является адекватным.

Richard Deeming

Это решение для Microsoft SQL Server. Вопрос помечен как MySQL.

Рейтинг:
0

Richard Deeming

Звучит так, как будто вы ищете то GROUP_CONCAT функция[^]:

SELECT
    id,
    val1,
    GROUP_CONCAT(val3) As val3s
FROM
    table1
GROUP BY
    id,
    val1
;