SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 17.07.2014 07:40:18

Евгения3004
Участник
Зарегистрирован: 17.07.2014
Сообщений: 2

как соединить данные нескольких столбцов в одну строку?

Есть табличка:

Id  l  max  l  min  l  color  l
1  l     10  l  nulll  l  null   l
1  l  null   l     0    l   null  l
2  l   null  l  null   l   red   l
2  l    15   l  null   l  null    l
2  l   null  l    1     l  null    l

Как из нее сделать?:

Id  l  max  l  min  l  color  l
1  l    10   l   0     l   null   l
2  l   15    l    1    l  red    l

Помогите, пожалуйста, советом.... заранее спасибо за помощь...

Неактивен

 

#2 17.07.2014 07:52:01

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: как соединить данные нескольких столбцов в одну строку?

Ну с Вашим набором данных такой запрос поможет:

SELECT `Id`,sum(`max`),sum(`min`),`color` FROM `t_7144` GROUP BY `Id`;

Код:

mysql> create table t_7144(Id integer, `max` integer,`min` integer, `color` varchar(255));                                    Query OK, 0 rows affected (0.18 sec)

mysql> insert into t_7144(Id, `max`,`min`, `color`) values(1,10,null,null),(1,null,0,null),(2,null,null,'red'),(2,15,null,null),(2,null,1,null);
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from t_7144;
+------+------+------+-------+
| Id   | max  | min  | color |
+------+------+------+-------+
|    1 |   10 | NULL | NULL  |
|    1 | NULL |    0 | NULL  |
|    2 | NULL | NULL | red   |
|    2 |   15 | NULL | NULL  |
|    2 | NULL |    1 | NULL  |
+------+------+------+-------+
5 rows in set (0.00 sec)

mysql> select Id,sum(`max`),sum(`min`),`color` from t_7144 group by id;
+------+------------+------------+-------+
| Id   | sum(`max`) | sum(`min`) | color |
+------+------------+------------+-------+
|    1 |         10 |          0 | NULL  |
|    2 |         15 |          1 | red   |
+------+------------+------------+-------+
2 rows in set (0.00 sec)

Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 17.07.2014 08:52:57

Евгения3004
Участник
Зарегистрирован: 17.07.2014
Сообщений: 2

Re: как соединить данные нескольких столбцов в одну строку?

А если скажем три столбца типа varchar.  Что в таком случае предпринять. Просто выдается ошибка что столбец не допустим в списке выбора поскольку не сод-ся ни в агрегатной функции ни в предложении group by.

Неактивен

 

#4 17.07.2014 08:55:19

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: как соединить данные нескольких столбцов в одну строку?

Вы приведите структуру таблицы (show create table `ИМЯ_ТАБЛИЦЫ`) и набор данных, который вызывает вопросы. Вариант группировки, который я предложил действительно отработает не везде.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson