Задавайте вопросы, мы ответим
Вы не зашли.
Уважаемые мастера подскажите есть таблица
CREATE TABLE Db.table1(
TM DATETIME DEFAULT NULL,
TMU INT (10) DEFAULT NULL,
VAL DOUBLE (30, 15) DEFAULT NULL
)
и в ней есть записи с одинаковым временем создания (которого я не знаю )как сделать выбор и среднее из этих записей по соответствующим полям остальные записи удалить.
Неактивен
CREATE TABLE t2 LIKE table1;
INSERT INTO t2 SELECT TM, AVG(TMU), AVG(VAL) FROM table1 GROUP BY TM;
RENAME TABLE table1 TO t1, t2 TO table1;
DROP TABLE t1;
Неактивен
Извините я ошибся в задании нужно как и было сказано найти записи с одинаковыми временем создания усреднить и поместить в эту же таблицу под этим же временем, а исходные строки на основании которых былоа создана новая строка удалить;
Я тут на основе вашей подсказки соорудил Проконсультируйте пожалуйста.
CREATE TABLE table2 LIKE table1;
INSERT INTO table2 (ТМ,TMU,VAL) SELECT TM, AVG(TMU), AVG(VAL) FROM table1 GROUP BY TM HAVING COUNT(*)>1;
DELETE FROM table1 WHERE TM = SELECT TM FROM table1 GROUP BY TM HAVING COUNT(*)>1;
INSERT INTO table 1 SELECT * FROM table2;
DROP table2;
Неактивен
TIMTOWTDI
Неактивен
По русски плиз можно
Отредактированно lkote (12.07.2010 10:21:24)
Неактивен
Задачку можно решить разными способами.
Неактивен
Все спасибо работаем.
кому надо:
DROP TABLE IF EXISTS RepositoryDb.tablen2;
CREATE TABLE RepositoryDb.tablen2 LIKE RepositoryDb.tablen1;
INSERT
INTO RepositoryDb.tablen2
SELECT
TM, AVG(TMU), AVG(VAL)
FROM
RepositoryDb.tablen1
GROUP BY
TM
HAVING
COUNT(*) > 1;
DELETE FROM RepositoryDb.tablen1
WHERE
TM IN
(SELECT
TM
FROM
RepositoryDb.tablen2);
INSERT INTO RepositoryDb.tablen1
SELECT
*
FROM
RepositoryDb.tablen2;
DELETE
FROM
RepositoryDb.tablen2;
Неактивен