SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 09.07.2010 15:34:42

lkote
Завсегдатай
Зарегистрирован: 07.07.2010
Сообщений: 25

Записи с одинаковым временем создания.

Уважаемые мастера подскажите есть таблица
CREATE TABLE Db.table1(
  TM DATETIME DEFAULT NULL,
  TMU INT (10) DEFAULT NULL,
  VAL DOUBLE (30, 15) DEFAULT NULL
)
и в ней есть записи с одинаковым временем создания (которого я не знаю )как сделать выбор и среднее из этих записей по соответствующим полям остальные записи удалить.

Неактивен

 

#2 09.07.2010 18:13:09

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Записи с одинаковым временем создания.

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;

Неактивен

 

#3 10.07.2010 18:32:44

lkote
Завсегдатай
Зарегистрирован: 07.07.2010
Сообщений: 25

Re: Записи с одинаковым временем создания.

Извините я ошибся в задании нужно как и было сказано найти записи с одинаковыми временем создания усреднить и поместить в эту же таблицу под этим же временем, а исходные строки на основании которых былоа создана новая строка удалить;
Я тут на основе вашей подсказки соорудил smile Проконсультируйте пожалуйста.

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;

Неактивен

 

#4 10.07.2010 19:48:10

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Записи с одинаковым временем создания.

TIMTOWTDI smile

Неактивен

 

#5 12.07.2010 10:10:09

lkote
Завсегдатай
Зарегистрирован: 07.07.2010
Сообщений: 25

Re: Записи с одинаковым временем создания.

По русски плиз можно smile

Отредактированно lkote (12.07.2010 10:21:24)

Неактивен

 

#6 12.07.2010 11:51:58

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Записи с одинаковым временем создания.

Задачку можно решить разными способами.

Неактивен

 

#7 12.07.2010 12:46:09

lkote
Завсегдатай
Зарегистрирован: 07.07.2010
Сообщений: 25

Re: Записи с одинаковым временем создания.

Все спасибо работаем.
кому надо:
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;

Неактивен

 

Board footer

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