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

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

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

Вы не зашли.

#26 12.03.2012 23:36:06

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

Re: Помогите!!!!!!!!!

не выкладывается перепечатывать текст..это долго....

Молодой человек, Вы издеваетесь или как?


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

Неактивен

 

#27 12.03.2012 23:39:37

Svoboda
Участник
Зарегистрирован: 11.03.2012
Сообщений: 23

Re: Помогите!!!!!!!!!

нет....блин...я не прошу сделать за меня задания..мне просто азы надо объяснить там просто очень...чувствую прям)

Неактивен

 

#28 12.03.2012 23:41:07

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

Re: Помогите!!!!!!!!!

Если Вам долго перепечатать несколько строчек текста с Вашей картинки с заданием, то никакая помощь Вам оказана не будет.


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

Неактивен

 

#29 12.03.2012 23:51:55

Svoboda
Участник
Зарегистрирован: 11.03.2012
Сообщений: 23

Re: Помогите!!!!!!!!!

да не сложно..
имеется таблица TEST_TABLE1  имеющая структуру     имеется таблица TEST_TABLE2 имеющая структуру
id integer                                                                    id integer
value integer                                                                code integer
descript varchar(20)                                                       

Id    value   descript                                                       id         code
1       20        val1                                                         1          215
2      500       val2                                                         2           322
3       30        val3                                                         3           73
4       60        val4                                                         4           142
5      100       val5                                                         8            282
6       60        val6
7      100       val7
8       60        val8

Неактивен

 

#30 12.03.2012 23:52:49

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

Re: Помогите!!!!!!!!!

Уже лучше. Имеются две таблицы, и что дальше? В чем вопрос?


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

Неактивен

 

#31 12.03.2012 23:58:48

Svoboda
Участник
Зарегистрирован: 11.03.2012
Сообщений: 23

Re: Помогите!!!!!!!!!

вот..и надо
надо написать SQL  коды для решения след задач

1 Посчитать проценты каждого значения Value от общей суммы и отсортировать по убыванию.
2 Вывести ИД повторяемых значений по полю value
3 Удалить повторяющиеся записи (по значению value) оставив по одной записи
4 Изменить поле descript cлед образом: преобразовать поле в числовое и оставить только числовую часть значения
5 Представить распределение записей по полю value с шагом 100
6 вывести code  для всех записей из таблицы TEST_TABLE1 у которых value > 70

Неактивен

 

#32 13.03.2012 00:01:08

Svoboda
Участник
Зарегистрирован: 11.03.2012
Сообщений: 23

Re: Помогите!!!!!!!!!

вот в принципе задания не слож видимо потому как всего две таблицы и знач не так много..т е и задачки то простые отсортировать и т д...
вот мне нужны азы....понимаете..т е если за меня сделают то толку мало поэтому я не прошу чтобы сделали за меня..мне самому понять надо..
блин..моя благодарность не будет иметь границ в пределах разумного)

Неактивен

 

#33 13.03.2012 00:51:10

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

Re: Помогите!!!!!!!!!

1. SELECT id,`value`*100/(SELECT sum(`value`) FROM t_5450_TEST_TABLE1) as p FROM t_5450_TEST_TABLE1 ORDER BY p DESC

2. select id from t_5450_TEST_TABLE1 WHERE `value` IN (SELECT `value` FROM t_5450_TEST_TABLE1 group by `value` having count(*) > 1);

3. По идее так:
DELETE FROM t_5450_TEST_TABLE1 WHERE id NOT IN (SELECT min(id) FROM t_5450_TEST_TABLE1 group by `value` );
Правда MySQL ругается: ERROR 1093 (HY000): You can't specify target table 't_5450_TEST_TABLE1' for update in FROM clause

В postgresql такая штука, к слову, работает. Можно сделать трюк со временной таблицей - но не факт, что это примут преподаватели. Вопрос к знающим: как можно в mysql такое сделать одним запросом?

4. Сначала срезать val -  UPDATE t_5450_TEST_TABLE1 SET descript =  substr(descript,4);
Потом ALTER TABLE t_5450_TEST_TABLE1 modify descript int;

Сразу тип колонки нельзя менять, потому что иначе значения value пропадут - то есть обратятся в ноль.

по 5-м и 6-м пунктам я писал ранее.


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

Неактивен

 

#34 13.03.2012 02:25:47

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

Re: Помогите!!!!!!!!!

deadka написал:

3. По идее так:
DELETE FROM t_5450_TEST_TABLE1 WHERE id NOT IN (SELECT min(id) FROM t_5450_TEST_TABLE1 group by `value` );
Правда MySQL ругается: ERROR 1093 (HY000): You can't specify target table 't_5450_TEST_TABLE1' for update in FROM clause

В postgresql такая штука, к слову, работает. Можно сделать трюк со временной таблицей - но не факт, что это примут преподаватели. Вопрос к знающим: как можно в mysql такое сделать одним запросом?

http://sqlinfo.ru/forum/viewtopic.php?pid=31035#p31035


To, Svoboda
По поводу основ читайте мануал или найдите в яндексе любой самоучитель на русском. Как вы себе представляете изложение основ на форуме? Мы можем лишь ответить на конкретные вопросы, которые у вас возникнут при чтении справочной литературы.

Неактивен

 

#35 13.03.2012 22:49:57

Svoboda
Участник
Зарегистрирован: 11.03.2012
Сообщений: 23

Re: Помогите!!!!!!!!!

deadka
огромное спасибо... еще бы разобраться теперь....смотрю в книгу и вижу фигу

Неактивен

 

#36 13.03.2012 23:30:27

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

Re: Помогите!!!!!!!!!

Спрашивайте, что именно непонятно (ответ - ВСЕ не принимается smile ) - подскажем.


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

Неактивен

 

#37 16.03.2012 19:43:56

Svoboda
Участник
Зарегистрирован: 11.03.2012
Сообщений: 23

Re: Помогите!!!!!!!!!

блин в принципе нормально все....так общие вопросы..я так понимаю в аксессе практиковаться не вариант?

Неактивен

 

#38 16.03.2012 23:54:08

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

Re: Помогите!!!!!!!!!

Смотря для чего: чтобы изучать MySQL - конечно нет; чтобы изучить SQL - почему нет.

Неактивен

 

#39 19.03.2012 23:03:45

Svoboda
Участник
Зарегистрирован: 11.03.2012
Сообщений: 23

Re: Помогите!!!!!!!!!

SELECT id,`value`*100/(SELECT sum(`value`) FROM t_5450_TEST_TABLE1) as p FROM t_5450_TEST_TABLE1 ORDER BY p DESC
это задание неправильно
5 Представить распределение записей по полю value с шагом 100
6 вывести code  для всех записей из таблицы TEST_TABLE1 у которых value > 70
а помогите с этими тоже а

Неактивен

 

#40 20.03.2012 00:05:12

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

Re: Помогите!!!!!!!!!

Svoboda написал:

SELECT id,`value`*100/(SELECT sum(`value`) FROM t_5450_TEST_TABLE1) as p FROM t_5450_TEST_TABLE1 ORDER BY p DESC
это задание неправильно

Почему?


Svoboda написал:

6 вывести code  для всех записей из таблицы TEST_TABLE1 у которых value > 70

В TEST_TABLE1 нет поля code. Если речь идет о том, что таблицы связаны по id, то какой результат должен быть для записи "7      100       val7", не имеющей соответствия во второй таблице?

Про объединения можно посмотреть здесь: http://dev.mysql.com/doc/refman/5.5/en/join.html

Неактивен

 

Board footer

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