SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 05.09.2012 19:34:14

Embarto
Участник
Зарегистрирован: 05.09.2012
Сообщений: 1

Интересная задача

CREATE TABLE IF NOT EXISTS `result` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `test_name` varchar(255) NOT NULL,
  `count` int(11) NOT NULL,
  `timeStart` bigint(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `result_question` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `result_id` int(11) NOT NULL,
  `question` varchar(255) NOT NULL,
  `answer` text NOT NULL,
  `time` bigint(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


1) Необходимо выбрать такие записи из первой таблицы, что
Количество записей во второй таблице, относящееся к записи в первой таблице = полю result.count

2) Необходимо подсчитать среднее число записей в таблице result_question приходящихся на каждую строку таблицы result с уникальным полем result.test_name

Буду благодарен. всем кто поможет!

Отредактированно Embarto (05.09.2012 19:38:37)

Неактивен

 

#2 05.09.2012 20:04:43

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Интересная задача

select .. from `result` r join
(select `result_id`, count(*) c from `result_question` group by 1) t on r.count=t.c and r.id=t.result_id;

select (select count(*) from `result_question`)/(select count(distinct test_name) from `result`);
 

Неактивен

 

Board footer

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