MySql с более чем одной колонкой - PullRequest
2 голосов
/ 17 августа 2010

У меня есть эта таблица

------------------
1  | 20,00 | A  |
2  | 20,00 | A  |
3  | 20,00 | A  |
4  | 20,00 | A  |
1  | 50,00 | B  |
2  | 50,00 | B  |
3  | 50,00 | B  |
4  | 50,00 | B  |

Я хотел бы создать эту таблицу, используя group by

id   | A     | B     |
----------------------
1    | 20,00 | 50,00 |
2    | 20,00 | 50,00 |
3    | 20,00 | 50,00 |
4    | 20,00 | 50,00 |

Вы можете мне помочь?

Ответы [ 3 ]

5 голосов
/ 17 августа 2010

Это стандартный сводный запрос:

  SELECT t.id,
         MAX(CASE WHEN t.col = 'A' THEN t.value ELSE NULL END) AS A,
         MAX(CASE WHEN t.col = 'B' THEN t.value ELSE NULL END) AS B
    FROM TABLE t
GROUP BY t.id

MySQL не поддерживает синтаксис PIVOT / UNPIVOT.

3 голосов
/ 17 августа 2010

Это не похоже на group by проблему.Но вы можете легко решить это с помощью join.

SELECT
  a.id,
  a.a,
  b.b
FROM table AS a
JOIN table AS b ON a.id = b.id
WHERE a.name = 'A' AND b.name = 'B'
0 голосов
/ 17 августа 2010

Предполагая, что ваша таблица - "table_name", первый столбец - "id", второй столбец - "Value", третий столбец - "Type" и является перечислением с "A" или "B":

SELECT
    a.ID,
    a.Value,
    b.Value
FROM table_name AS a,
    table_name AS b
WHERE a.ID=b.ID AND
    a.Type='A' AND
    b.Type='B'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...