MySQL считает, что «выравнивает» данные - PullRequest
2 голосов
/ 10 марта 2012

У меня есть следующая таблица:

group_id    amount  type
1           10      1
1           2       1
1           5       2
1           4       3
2           5       1

и я ищу представление, которое агрегирует данные в этой таблице так, чтобы представление генерировало что-то подобное, и мы надеемся, что оно может делать это динамически:

group_id    type1_amount    type2_amount    type3_amount
1           12              5               4
2           1               NULL            NULL

Я предпочитаю использовать представление в MySQL (если у вас есть лучший вариант, я открыт для его прослушивания), и большое ограничение представлений в MySQL состоит в том, что субвыборы в предложении FROM не допускаются.

1 Ответ

4 голосов
/ 10 марта 2012
SELECT
    group_id,
    SUM(CASE WHEN type = 1 THEN amount END) AS type1_amount,
    SUM(CASE WHEN type = 2 THEN amount END) AS type2_amount,
    SUM(CASE WHEN type = 3 THEN amount END) AS type3_amount
FROM your_table
GROUP BY group_id
...