Как я могу посчитать количество вхождений диапазона значений в одном столбце против всех уникальных значений в другом в MySQL? - PullRequest
0 голосов
/ 17 января 2019

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

Item    Brand           Size
1       BiGNRG          AA
2       LongLife        AAA
3       LongLife        AAA
4       BiGNRG          AA
5       LongLife        D
6       EcoBatt         C
7       BiGNRG          AAA
8       BiGNRG          AA
9       EcoBatt         C

Мне нужен SQL-запрос для преобразования этой информации в:

Brand    AA     AAA     C       D
BiGNRG   3      1       0       0
EcoBatt  0      0       2       0
LongLife 0      2       0       1

Я не могу понять, как преобразовать эти данные в этот формат.

1 Ответ

0 голосов
/ 17 января 2019

если номер опции ограничен, вы можете попробовать использовать группу, выбрав union all

select brand, count(AA) AA, count(AAA)  AAA, count(C) C, count(D) D 
from (
    select  Brand, 'AA' AA ,  NULL  AAA,  NULL C , NULL D 
    from my_table 
    where size ='AA'
    union ALL 
    select  Brand, null ,  'AAA'  ,  NULL , NULL
    from my_table 
    where size ='AAA'
    union ALL 
    select  Brand, null ,  null   ,  'C' , NULL
    from my_table 
    where size ='C'
    union ALL 
    select  Brand, null ,  null   , null,  'D'
    from my_table 
    where size ='D'
) T 
group by brand 
...