|
|
|
| Таблица tmp_1s_vse содержит столбец str с именем страниц и 200 столбцов с именами вида t_0 ... t_200.
Нужно для каждого значения str просуммировать столбцы и записать результат в другую таблицу tmp_1s_dif аналогичной структуры.
Я попробовал сделать это нижеследующим образом (для первых нескольких столбцов) - не получилось...
mysql_query ("INSERT INTO tmp_1s_dif
(str, t_0, t_1, t_2, t_3, t_4)
SELECT str, SUM(t_0) AS cnt_0,
SUM(t_1) AS cnt_1, SUM(t_2) AS cnt_2, SUM(t_3) AS cnt_3, SUM(t_4) AS cnt_4
FROM tmp_1s_vse ORDER BY str ");
|
В чем причина? | |
|
|
|
|
|
|
|
для: Владимир55
(03.05.2009 в 20:07)
| | Сообщение об ошибке какое-нибудь выдается? В чем заключается не удача (нули, не добавляется запись)? | |
|
|
|
|
|
|
|
для: cheops
(04.05.2009 в 11:49)
| | Сообщения об ошибке нет.
Но если посчитать калькулятором, то суммы не соответствуют слагаемым. | |
|
|
|
|
|
|
|
для: Владимир55
(04.05.2009 в 12:01)
| | А запрос именно такой? GROUP BY не используется? | |
|
|
|
|
|
|
|
для: cheops
(04.05.2009 в 12:27)
| | Спасибо, подправил. Запрос такой:
mysql_query ("INSERT INTO tmp_1s_dif
(str, t_0, t_1, t_2, t_3, t_4)
SELECT str, SUM(t_0) AS cnt_0,
SUM(t_1) AS cnt_1, SUM(t_2) AS cnt_2, SUM(t_3) AS cnt_3, SUM(t_4) AS cnt_4
FROM tmp_1s_vse GROUP BY str ");
|
Арифметика не сходится самым радикальным образом: там, где сумма имеет численное значение, присутствует NULL, а где-то числа, но не те. В общем, "каша". | |
|
|
|
|
|
|
|
для: Владимир55
(04.05.2009 в 12:53)
| | Нет, нет... GROUP BY как раз не нужно. | |
|
|
|
|
|
|
|
для: cheops
(04.05.2009 в 13:04)
| | как это не нужно?
без GROUP BY опреатор теряет смысл. | |
|
|
|
|
|
|
|
для: Trianon
(04.05.2009 в 13:36)
| | Хм... пожалуй так. Вообще хорошо бы иметь небольшой дамп исходной таблицы, чтобы вопроизвести ситуацию. | |
|
|
|